본문 바로가기

코딩테스트

[프로그래머스(Programmers)/Level2](Python) 압축

 

 

<내코드>

 

<풀이과정>

입력받은 문자열을 제일 앞에서부터 한자리씩 늘려가면서 dictionary에 해당 문자열이 있는지 검사한다.

해당 문자열이 없을때, 이전의 문자열에 해당하는 색인을 answer에 추가하고 해당 문자열의 색인을 추가해준다.

이 두가지 작업 후에 원본 문자열을 담고있는 리스트에서 answer에 추가한 색인에 해당하는 문자열을 제거해주는 작업을

주어진 문자열이 끝날때 까지 반복하면 결국 모든 색인이 answer 리스트에 담기게 된다.

 

<느낀점>

코드를 보면 알겠지만 불필요한 변수를 이용하여 조금 복잡하다. 변수를 많이사용할 수록 문제해결에 방해가 된다는 사실을

깨달았다.(근래에 메모리는 예전과 달리 훨씬 크므로 이전에 굳이 있는 변수를 억지로 활용하지말고 새로운 변수를 선언하여 사용하는 것도

좋은 방법이란 글을 본 적이 있었는데 이문제를 풀면서 활용할 수 있는 변수는 최대한 활용하는 것도 헷갈리지 않게 문제를 해결하는

방법이라는 생각이 들었다.)