말씀하신 것과 코드가 다르네요. 코드에서는 j-1번째 인덱스에 접근하지 않으니 문제가 없습니다.
1316번 - 그룹 단어 체커
이대로 돌리면
line 10, in
if list1[j-1] == list1[j]:
IndexError: list index out of range
이런 문제가 뜨던데요...? ㅠㅠ
그런 에러 메시지가 나올 수가 없습니다. 에러 메시지가 10번째 줄의 코드를 그대로 보여주고 있는데, 올리신 코드를 보면 분명히 인덱스를 j와 j+1로 접근하고 있습니다. 그런데 에러 메시지가 j-1과 j로 나올 리가 없죠.
물론 이 코드 그대로 돌려도 IndexError가 나기는 합니다. 그 이유는 s = list1이 리스트를 복사해주는 것이 아니라 같은 객체를 가리키게끔 하는 것이기 때문에 s에서 원소를 지우는 것은 곧 list1에서 원소를 지우는 것과 같기 때문입니다. 그런데 for문은 처음의 list 길이만큼 돌기 때문에 중도에 list1의 원소가 지워지며 길이가 줄어들면 나중에는 범위를 벗어난 인덱스에 접근하게 됩니다.
댓글을 작성하려면 로그인해야 합니다.
tmdxo12344 3년 전
line 10, in
if list1[j-1] == list1[j]:
IndexError: list index out of range
파린이입니다,, 위와같은 오류가 뜨는 이유를 모르겠어요,,
j값 프린트도 해봤는데 list range안에 값만 나오는데ㅜㅜ 왜 그럴까요..
도와주세요,,