컴퓨터 과학 주제 둘러보기정렬합병 정렬 코드 짜기

Q

리스트의 원소를 삭제하다보니, list index out of range 오류가 나와요.

조회 515

좋아요 0

2018년 1월 21일

댓글 1

2018년 1월 21일
방금 발견한건데, code 1의 경우에도 list1이 list2보다 길 경우, IndexError: list index out of range exited with non-zero status 라는 에러가 뜹니다. ㅠ
A
3개의 답변이 있어요
2018년 1월 21일

댓글 4

2018년 1월 22일
아 감사합니다. 그러면, list1에 원소가 없을 때! 를 표시하려면, len(list1) <= 0 라는 표현이 맞다는 것이죠!?
2018년 1월 22일
`len(list1) == 0`으로 하면 됩니다. 리스트의 길이가 `-`일 때는 없으니까요~
2018년 1월 22일
감사합니다!
2018년 1월 22일
감사합니다!
2018년 1월 22일

댓글 3

2018년 1월 22일
list2의 원소가 모두 비교되어 제거되면, ` elif len(list1) == 0 or list1[0] >= list2[0]: `에서 ` elif len(list1) == 0 or list1[0] >= list2[0]: `를 비교할 때 오류가 나오겠죠! 그리고 함수에서 `return merged_list`도 해주어야 합니다.
2018년 1월 22일
http://www.codeit.kr/questions/189의 답변도 참고해주세요! 자세히 합병정렬의 과정에 대해 설명해놓았습니다.
2018년 1월 22일
아 넵 바로 읽겠습ㅂ니다!
2018년 1월 22일

댓글 3

2018년 1월 22일
혹시 del 을 써서 푼 이 풀이가 안좋은 점 같은게 있을까요??
2018년 1월 22일
안 좋은 것은 아닌데, 리스트를 그대로 놔둔 채 인덱스를 움직이는 것에 비해, 오류가 날 확률이 훨씬 큽니다. 저는 해설의 인덱스를 움직이는 풀이를 더 선호합니다. `del` 등의 함수를 많이 안쓰는 편입니다 :)
2018년 1월 22일
아.. 그렇군요.. 답변 감사합니다!! 힌트 풀이로도 한번 풀어봐야겠습니다! ㅎ

(주) 코드잇

대표강영훈

개인정보보호책임자강영훈

이메일support@codeit.kr

사업자 번호313-86-00797

통신판매업제 2019-서울중구-1034 호

주소서울특별시 중구 청계천로 100 시그니쳐타워 동관 10층 코드잇