[코딩테스트연습]프로그래머스-[3차] 압축 (Lv2)
* 관련 기술 스택이 없습니다

• 카카오 신입사원 어피치는 메시지를 압축하여 전송 효율을 높이는 업무를 맡게 되었고, 무손실 압축 알고리즘인 LZW 압축을 구현하기로 결정했다.
• LZW 압축은 길이가 1인 모든 단어를 포함하도록 사전을 초기화하고, 사전에서 현재 입력과 일치하는 가장 긴 문자열을 찾아 해당하는 사전의 색인 번호를 출력하고, 입력에서 그 문자열을 제거하는 과정을 반복한다.
• 이 코드는 두 개의 while문을 사용하여 문자열을 처리하는 알고리즘을 구현한 것이다. 바깥쪽 while문은 문자열 전체를 처리하고, 안쪽 while문은 현재 문자와 다음 문자를 찾는데 사용된다.
• 알고리즘은 사전에 A~Z를 먼저 넣고, 현재 문자와 다음 문자를 찾는다. 만약 현재 문자와 다음 문자를 합친 문자열이 사전에 있다면, 현재 문자에 현재 문자와 다음 문자를 합친 문자열을 추가하고 다음 문자를 찾는다. 만약 사전에 없다면, 현재 문자와 다음 문자를 합친 문자열을 사전에 추가하고, 사전에서의 위치를 리스트에 추가한다. 이 과정을 반복하여 문자열을 처리한다.

북마크
공유하기
신고하기