Problem Solving/Programmers
[Programmers] 2018 KAKAO BLIND RECRUITMENT[3차] : 압축
이진2
2021. 2. 13. 12:02
programmers.co.kr/learn/courses/30/lessons/17684
코딩테스트 연습 - [3차] 압축
TOBEORNOTTOBEORTOBEORNOT [20, 15, 2, 5, 15, 18, 14, 15, 20, 27, 29, 31, 36, 30, 32, 34]
programmers.co.kr
LZW 압축 방식을 사용해서 문자열을 압축하는 전형적인 파이썬 딕셔너리 활용 문제같다
2018년 카카오 코테 기출은 풀다보면 신기하다 정말 네가 카카오에 들어와서 과제 던져주면 해결할 수 있냐고 묻는 것 같은 느낌....??
problem solving이 문제해결능력으로 이어지는지 보려는 의도 같다
하지만 이 문제는 쉽기 때문에 뛰어난 능력을 요구하진 않았따
나는 맨 처음 딕셔너리를 초기화하고, 단순 이중 for문을 돌려주면서 일치하는 문자열이 있으면 색인 번호를 갱신하고 아니면 딕셔너리에 추가하는 방식으로 구현했다
def solution(msg):
answer = []
dic ={}
cnt=1
for i in range(0,26):
dic[chr(i+ord('A'))]=cnt
cnt+=1
print(dic)
i=0
while i<len(msg):
num=0
j=i+1
while j<len(msg)+1:
s=msg[i:j]
if s in dic:
num=dic[s]
else:
dic[s]=cnt
cnt+=1
break
j+=1
if num!=0:
answer.append(num)
i=j-1
return answer