[프로그래머스/Python] 압축

Sujin Lee·2022년 10월 15일
0

코딩테스트

목록 보기
142/172
post-thumbnail
post-custom-banner

문제

프로그래머스 - 압축

해결 과정

  • 먼저 사전을 만들어준다. = dic
  • while문을 사용하여 반복문을 돈다.
    • 현재 글자와 다음 글자를 합친 것이 dic에 없으면 추가해주고
      anser에 넣어준다. 그래고 현재 글자 위치를 다음 글자로 바꿔준다.
    • 현재 글자와 다음 글자를 합친 것이 dic에 있다면 다음 글자 + 1
    • 현재 글자는 다음 글자 두 자리를 합친 것이 dic에 있는지 확인
    • 다음 글자가 마지막 글자라면 answer에 넣어주고 break

시행착오

  • 처음에 조건문을 하나씩.. 하려고 했다... 🙄
    현재 글자 있는지? 현재 글자 + 다음 글자 있는지?
    ⏩ 하나의 조건만 비교하면 된다. = (현재 글자 + 다음 1개의 글자)가 사전에 있는지? 없다면 (현재 글자 + 다음 2개의 글자)가 있는지 ...

풀이

def solution(msg):
    answer = []
    dic = {}
    
    # 사전 만들기 
    # {'A':1 , 'B':2 ...}
    for i in range(26):
        dic[chr(65+i)] = i + 1
        
    w,c = 0,0
    while True:
        c += 1
        if c == len(msg):
            answer.append(dic[msg[w:c]])
            break
        if msg[w:c+1] not in dic:
            dic[msg[w:c+1]] = len(dic) + 1
            answer.append(dic[msg[w:c]])
            w = c
    
    return answer
profile
공부한 내용을 기록하는 공간입니다. 📝
post-custom-banner

0개의 댓글