Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
느낀점
우선, 결론부터 이야기하자면 이 코드는 잘못된 코드다. 에러가 나기 때문이다... 그럼에도 이 코드로 푸쉬를 하는 이유는,,,, 사실 이 문제를 여섯 시간동안 붙잡고 있었기 때문이다. 처음에 딱 봤을 때는, 엥? 쉬운데?라고 생각을 했고, 그래서 바로 풀었는데 에러를 계속해서 해결하느라 꽤 애먹었다. 결국... 못 고쳤지만...^^ 그래도 재귀를 보다가 문자열을 보니까... 마음이 행복했다. 문자열 사랑혀... 리스트 사랑혀...
풀이방법
음 내가 봐도 변수랑 반복문을 꽤 많이 썼다. 우선 i는 쪼갤 단위 수, split_data는 s를 i씩 잘라서 넣은 리스트, nlist는 split_data에서 옆의 요소와 비교해서 몇개가 같은지 개수를 세서 넣어둔 리스트, ncomplete는 압축한 문자열, unit은 자른 단위별로 다른 모든 ncomplete를 모은 리스트, unitlen은 unit리스트 요소의 길이를 넣어둔 리스트다. 예를 들어, unitlen[1]은 s를 1씩 잘라서 압축한 문자열 unit[1]의 길이이다.
인덱스에러가 나는데,
이 부분에서 에러가 나는 것 같다. nlist가 원래는 0이 1000개인 리스트인데, 단위에 따라 자른 문자열에서 같은 부분이 있으면 1씩 증가시키는 방향으로 만들었고, 만약 증가값이 없으면 그를 기준으로 뒤를 자르겠다는 의미의 코드였다. 그런데, 이제 자르는 동작이 제대로 작동되지 않아서, len(nlist)이 여전히 1000인 상태가 유지되어서 뒷 코드에서도 쭉 에러가 나는 듯하다....
이미 이 아이와 너무 많은 씨름을 해서, 아예 처음부터 코드를 다시 짜보는 게 더 낫지 싶기도 하고 그렇다.
이 문제는 정말 다시 풀어볼 예정이다. 나는 문자열의 정말 처음부터 끝까지를 돌리는 반복문을 사용했는데, 구글링을 해보니 다들 반으로 쪼갠 개수를 이용하더라... 하긴 입력가능한 문자열의 길이가 최대 1000이니까, 처음부터 끝까지 하나하나 다 돌려보는 건 상당히 비효율적인 일일거라 생각한다. 구글링하기 싫어서 진짜 잉케저케 붙잡고 있었는데, 이 문제는 다른 사람이 푼 코드를 다시 보고 하나하나 천천히 다시 보려고 한다.