*문제 출처는 프로그래머스에 있습니다.
문제 제목: [3차] 압축 (2단계)
문제 사이트: https://school.programmers.co.kr/learn/courses/30/lessons/17684
문제 설명
나의 풀이
def solution(msg):
answer = []
m = {'A': 1, 'B': 2, 'C': 3, 'D': 4, 'E': 5, 'F': 6, 'G': 7, 'H': 8, 'I': 9, 'J': 10, 'K': 11, 'L': 12, 'M': 13, 'N': 14,
'O': 15, 'P': 16, 'Q': 17, 'R': 18, 'S': 19, 'T': 20, 'U': 21, 'V': 22, 'W': 23, 'X': 24, 'Y': 25, 'Z': 26}
idx = 27
start, end = 0, 1
while end < len(msg) + 1:
s = msg[start:end]
if s in m:
end += 1
else:
answer.append(m[s[:-1]])
m[s] = idx
idx += 1
start = end - 1
answer.append(m[s])
return answer
※ 알아야 할 것
아직 파이썬이 미숙해서 딕셔너리를 사용할 때 알파벳 하나씩 다 넣었는데 더 쉬운 방법이 있다는 것을 알게 되었다.
dic = {chr(i + 64): i for i in range(1, 27)}
이렇게 하면 dic에 수작업으로 할 필요를 덜어준다.
'코딩테스트(프로그래머스 & 백준) > 프로그래머스-Python' 카테고리의 다른 글
Programmers / 뒤에 있는 큰 수 찾기 / Python (0) | 2024.03.27 |
---|---|
Programmers / 더 맵게 / Python (0) | 2024.03.27 |
Programmers / 네트워크 / Python (0) | 2024.03.26 |
Programmers / 게임 맵 최단거리 / Python (0) | 2024.03.25 |
Programmers / 모음사전 / Python (0) | 2024.03.25 |