문제
https://programmers.co.kr/learn/courses/30/lessons/17684
처음 작성한 코드
def solution(msg):
di = dict()
answer = []
k = 26
for i in range(k):
di[chr(65+i)] = i+1
i = 0
while True:
tmp = ''
for j in range(i,len(msg)):
if msg[i:j+1] in di.keys():
tmp = msg[i:j+1]
else:
di[msg[i:j+1]] = k+1
k+=1
answer.append(di[tmp])
i += len(tmp)
break
else:
answer.append(di[tmp])
break
return answer
코드 리뷰 후
def solution(msg):
answer = []
k = 26
di = {chr(65+i):i+1 for i in range(k)}
i = 0
while True:
tmp = ''
for j in range(i,len(msg)):
if msg[i:j+1] in di.keys():
tmp = msg[i:j+1]
else:
di[msg[i:j+1]] = k+1
k+=1
answer.append(di[tmp])
i += len(tmp)
break
else:
answer.append(di[tmp])
break
return answer
깨달은 점
- dictionary도 리스트 초기화하듯 초기화할 수 있다.
- 2단계치고 쉽길래 풀었는데 역시나 점수가 2점인 쉬운 문제였다~
'Programmers' 카테고리의 다른 글
[프로그래머스] 수식 최대화 (0) | 2021.01.25 |
---|---|
[프로그래머스] 스킬트리 (0) | 2021.01.23 |
[프로그래머스] 후보키 (0) | 2021.01.22 |
[프로그래머스] 오픈채팅방 (0) | 2021.01.19 |
[프로그래머스] 괄호 변환 (0) | 2021.01.19 |