https://school.programmers.co.kr/learn/courses/30/lessons/17684?language=python3
나의 풀이
.
모범 답안
def solution(msg):
alpha = {chr(i+65) : i+1 for i in range(26)}
answer = []
while True:
if msg in alpha:
answer.append(alpha[msg])
break
for i in range(1,len(msg)):
if msg[:i+1] not in alpha:
answer.append(alpha[msg[:i]])
alpha[msg[:i+1]] = len(alpha)+1
msg = msg[i:]
break
return answer
alpha 딕셔너리에 for 문을 이용해 알파벳 사전 순으로 저장하고, alpha에 msg가 들어가 있지 않으면 answer에 alpha[msg:i]를 삽입하고 alpha에 msg의 부분 문자열을 넣고 msg[i:]를 수정하며 반복한다.
'코딩테스트 > programmers (python)' 카테고리의 다른 글
Programmers / 2단계 / [3차] n진수 게임 / python / 2018 KAKAO BLIND RECRUITMENT (1) | 2024.03.05 |
---|---|
Programmers / 2단계 / 다리를 지나는 트럭 / python (0) | 2024.02.24 |
Programmers / 2단계 / 땅따먹기 / python (0) | 2024.02.21 |
Programmers / 2단계 / 뒤에 있는 큰 수 찾기 / python (0) | 2024.02.21 |
Programmers / 2단계 / [스택/큐] 주식가격 / python (0) | 2024.02.20 |