연습장
9. 완주하지 못한 선수 본문
participant 에는 있고 completion 에 없는 사람을 1명 찾으면 된다.
간단하게 participant 에서 completion 을 빼면 되지않나 라고 생각했다.
빼기가 없어서 for 문으로 반복하여 진행해봤다.
중복 이름도 있으므로 participant 에서 원소를 하나씩 빼서
completion 에 존재하면 지우고 존재하지 않으면 return 하도록 하였는데
def solution(participant, completion):
participant.sort()
completion.sort()
for part in participant:
if part in completion:
completion.remove(part)
else:
return part
시간 초과 부분에서 문제가 발생했다.
for 문으로 비교하는 부분에서 시간초과가 난것 같다.
정렬하였을때 다음과 같이 같은 인덱스에서 서로 다른 값을 가지는 경우를 찾으면 된다.
def solution(participant, completion):
# 정렬
participant.sort()
completion.sort()
for i in range(len(participant)):
try: # 맨 마지막의 경우 completion[i] 가 없으므로 오류가 난다.
if participant[i] != completion[i]:
return participant[i]
except: # 마지막까지 진행 되었다는건 정답이 맨 마지막이라는 뜻
return participant[i]