반응형

-풀이

def solution(msg):
    #myDic = dict(zip("ABCDEFGHIJKLMNOPQRSTUVWXYZ", range(1,27)))
    alphaList = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
    d = {}
    for i in range(1, len(alphaList)+1):
        d[i] = alphaList[i-1]
    d = dict(map(reversed, d.items()))
    answer = []
    while True:
        #msg가 d에 있으면 d[msg]의 value값을 answer에 append한다.
        if msg in d:
            answer.append(d[msg])
            break
        # i => 1~ msg길이+1
        for i in range(1, len(msg)+1):
            #msg 범위만큼이 d에 없으면 
            if msg[0:i] not in d:
                #answer에 d[msg범위만큼]
                answer.append(d[msg[0:i-1]])
                #d에다가 없는 msg범위만큼의 value를 추가해준다.
                d[msg[0:i]] = len(d)+1
                msg = msg[i-1:]
                break
    return answer

-풀이 설명

[40분 no sol]맨 위 주석 달은 myDic은 한줄로 간단하게 1~26과 A-Z를 딕셔너리로 만들어주는 방법이다. 그냥 구현 문제인 것 같은데 이 문제를 보고 내가 슬라이싱과 반복문의 응용을 아직 완벽히 숙달하지 못했다고 느꼈다.  요즘 문제를 풀면서 내가 약한 부분을 맞닥뜨렸을 때 많이 헤매는 것 같다. 많이 공부해서 다져놔야 겠다.

'알고리즘' 카테고리의 다른 글

[입출력] 백준 2438 (별 찍기)  (0) 2021.10.17
[입출력] 백준 10818 (최소, 최대)  (0) 2021.10.17
[입출력] 백준 8393 (합)  (0) 2021.10.16
[입출력] 백준 1924 (2007년)  (0) 2021.10.16
[입출력] 백준 2739 (구구단)  (0) 2021.10.16

+ Recent posts