알고리즘/문제
[문자열] 프로그래머스 압축
_Min
2021. 5. 5. 19:05
문제링크 programmers.co.kr/learn/courses/30/lessons/17684
[답코드]
def solution(msg):
answer = []
dict={}
for i in range(0, 26):
dict[chr(ord('A')+i)]=i+1
i, num=0, 27
w=''
while i<len(msg):
w+=msg[i]
if w not in dict:
answer.append(dict[w[:-1]])
dict[w]=num
num+=1
w=''
continue
if i==len(msg)-1:
answer.append(dict[w])
i+=1
return answer
[풀이법]
for 문과 while 문의 차이에 대해 다시 생각하게 해 준 문제였다
for 문은 순차접근인 반면, while 문은 i의 값을 내 생각대로 변경할 수 있어서 while 문을 사용하는 것이 유리한 문제였다고 생각한다
사실 문제를 처음 본 날 잘 안 풀려서 다음 날 다시 풀어봤다.
첫날에는 for문으로 풀 수 있다는 생각에 for문으로 계속 시도해서 안 됐었는데, while문으로 시도를 했으면 좀 더 빨리 풀지 않았나 싶다
개인적으로 그렇게 쉽지만은 않은 문제였는데 정답률이 95.8퍼 ㄷㄷㄷ,,,, 다들 대단하십니다
728x90