더북(TheBook)

4. 최종적으로 줄인 문자열 vs 원래 문자열의 길이 중 누가 더 짧은가 비교하면 됩니다. 만약 원래 문자열의 압축 과정을 수행한 문자열의 길이보다 같거나 작으면 압축을 하지 않는 것이 더 좋다는 결론을 낼 수 있습니다.

이 정도만 정리해도 전체 코드를 작성하는 데 충분할 것입니다. 이 외에도 다음 사항을 고민해볼 수 있습니다.

• 압축된 코드를 가지고 있어야 하는가?

결론부터 말하면 그럴 필요가 없습니다. 압축된 문자열의 길이를 구하기 위해 전부 계산한 이후에 나온 문자열을 합쳐야 하는지 고민할 수 있지만, 문제에서는 압축된 문자열이 중요한 게 아니라 압축된 문자열의 길이가 중요합니다. 따라서 변수를 하나 두어 계산이 완료될 때 압축된 문자열의 길이를 바로바로 더하도록 만드는 것이 더 좋은 방법입니다.

이제 앞에서 상세하게 분석한 전략으로 코드를 작성해보겠습니다.

 

코드 작성

1. 압축 가능한 길이만큼(전체의) 순회합니다.

문자열 압축 과정을 진행하고 최종적으로 압축된 문자가 더 짧은지 vs 원래 문자열이 더 짧은지를 확인해야 하므로 answer 변수에는 처음 받은 문자열의 길이를 할당합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.