알고리즘
<프로그래머스> [3차] 압축
koyuchang
2021. 1. 19. 02:17
문제 출처: 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
풀이
1. 우선 'A'부터 'Z'까지 사전(리스트)에 넣는다.
2. 한글자, 두 글자 순서대로 substring 해서 사전에 존재하는지 확인한다.
-
존재하면, idx를 늘려서 더 긴 문자열을 검색할 수 있도록 한다. 그리고 현재 substring으로 잘라낸 값을 저장.
-
존재하지 않으면 이전까지는 존재했다는 것을 뜻하므로 저장된 값을 사전에 더하고 저장된 값의 인덱스를 구해서 answer 배열에 추가한다. 그리고 문자열을 새롭게 만들어 줘야 하는데 사전에 넣을 때의 idx에서 -1부터 msg의 길이까지 substring 해서 새로운 msg로 만들어낸다.
3. 이것을 idx가 문자열의 크기보다 커질때까지 반복하면 된다.