강의로 돌아가기
Han WooJin

슬라이스 이용 테스트 통과, 채점 실패

테스트는 통과 하였지만, 채점에서 50%만 통과 하였습니다.
어떤 부분이 문제인지 알수 있을까요?

작성중인 코드―solution.py
1
2
3
4
5
6
7
8
9
10
11
12
13
def solution(L, x):
    start = 0
    result = []
    while start < len(L):
        if x in  L[start:]:
            loc = L[start:].index(x)
            i = start + loc
            result.append(i)
            start = i + 1
        else:
            if 0 == len(result):
                result.append(-1)
            return result
1 개의 답변
이시윤

가장 먼저 해결해야 할 문제는 return 문의 위치입니다.

입력으로 L = [1, 2, 3]x = 3 이 주어졌다고 가정하고 (즉, 찾으려는 원소가 리스트의 맨 마지막에(도) 있는 경우) 테스트해 보시면 문제점을 발견할 수 있을 텐데요, 이런 경우에는 L10 의 else 절로 진입하지 않기 때문에 L13 에 도달하지 않고 이 함수는 return 을 만나지 못합니다.

Python 에서는 return 이 실행되지 않으면서 함수의 실행이 종료하는 경우, 이 함수는 아무 것도 리턴하지 않은 것으로 간주하여 그 리턴 값을 호출한 쪽에서 참조하면 None 이라는 특별한 값이 됩니다.

답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.