강의로 돌아가기
SuperRPM

성공했는데 왜 성공했는지 잘 모르겟습니다.

8번째 줄에 return answer를 제거하면 정확성에서 에러가 납니다.

단지 그 밑에 코드를 실행하지 않을뿐 중간에 return이 answer의 값에 영향을 주지 않는다고 생각했는데
왜 이런 차이가 생기는지 이해가 잘 되지 않습니다.

몇가지 테스트케이스로 ide에서 돌려봤을땐 모두 통과해서 이유를 더 모르겠습니다 ㅜㅜ

작성중인 코드―solution.py
1
2
3
4
5
6
7
8
9
10
11
def solution(participant, completion):
    answer = ''
    participant = sorted(participant)
    completion = sorted(completion)
    for i in range(len(completion)):
        if participant[i] != completion[i]:
            answer = participant[i]
            #return answer
    if answer == '':
        answer = participant[-1]
    return answer
1 개의 답변
SuperRPM

왜 그런가하면
participant와 completion을 sorted를 통해서 정렬해줬는데
각각의 리스트를 순회하다가 participant[I] != completion[I]가 처음으로 True가 되는 participant[I]가 정답인데
return answer로 반복문의 순회를 끊어주지 않으면 i 번째 요소 뒤에있는 모든 요소들은 participant[I] != completion[I]가 True가 되기 때문에
쓸데 없이 answer가 계속해서 업데이트 됩니다.
좀 부끄러운 실수지만...다른 분께 도움이 될 수도 있지않을까해서 남겨둡니다 ㅜㅜ 어우 창피하네요

답변 쓰기
This input form supports markdown syntax. Please refer to 마크다운 가이드.