프로그래머스 코딩테스트 고득점 Kit의 문제입니다.
https://programmers.co.kr/learn/challenges?tab=algorithm_practice_kit
문제
https://programmers.co.kr/learn/courses/30/lessons/17684
내가 작성한 코드
from collections import defaultdict
def without_longest_matched(msg, dic, crnt_num, answer):
for i in range(1, len(msg)+1):
if msg[:i] not in dic:
w = msg[:i-1]
c = msg[i-1]
dic[w+c] = crnt_num
answer.append(dic[w])
without_longest_matched(msg[i-1:], dic, crnt_num+1, answer)
return
answer.append(dic[msg])
return
def solution(msg):
answer = []
dic = defaultdict(int)
for i in range(ord('A'), ord('Z') + 1):
dic[chr(i)] = i - ord('A') + 1
crnt_num = 27
without_longest_matched(msg, dic, crnt_num, answer)
return answer
- 구현
- LZW에 대한 설명 그대로 구현하면 된다
다른 사람이 작성한 코드
None
기억해야할 것
- 처음에 설명을 제대로 안보고 어떻게 구현할지 고민을 많이 했는데, 설명에 잘 나와있었다
- 문제를 꼼꼼히 읽자!
'코딩테스트' 카테고리의 다른 글
[프로그래머스][KAKAO_BLIND][2018] 셔틀버스 (0) | 2021.09.03 |
---|---|
[프로그래머스][KAKAO_BLIND][2018] N진수 게임 (0) | 2021.09.03 |
[프로그래머스][KAKAO_BLIND][2018] 방금 그 곡 (0) | 2021.09.03 |
[프로그래머스][KAKAO_BLIND][2019] 블록 게임 (0) | 2021.09.02 |
[프로그래머스][KAKAO_BLIND][2019] 매칭 점수 (0) | 2021.09.02 |