사용 언어 : python
for문을 사용하여 completion의 요소가 participant에 있을 경우 그 요소를 participant에서 삭제하여 남은 요소를 return 한다.
정확성 테스트는 통과! 하지만 효율성 테스트는 시간초과가 떴다 ㅠㅠ
import collections
def solution(participant, completion):
for x in completion:
if x in participant:
participant.remove(x)
return participant[0]
sort로 정렬을 한 후 같은 인덱스 값 끼리 비교한다.
index 값이 다르면 participant[x]가 정답이고, 없다면 participant의 마지막 인덱스에 완주하지 못한 선수가 있다는 의미로 participant[-1]이 정답이다.
def solution(participant, completion):
participant.sort()
completion.sort()
for x in range(len(completion)):
if participant[x] != completion[x]:
return participant[x]
return participant[-1]
zip()은 파이썬 내장 함수로 동일한 개수로 이루어진 자료형을 묶어주는 역할을 하는 함수이다.
zip() 함수 참고 사이트
def solution(participant, completion):
participant.sort()
completion.sort()
for x, y in zip(participant, completion):
if x != y:
return x
return participant[-1]
collections 모듈 사용
Counter
은 해시 가능한 객체를 세는 데 사용하는 딕셔너리 서브 클래스이다.
dictionary 같이 {key: value} 형식으로 만들어진다.
뺄셈 연산을 지원한다.
collections 모듈 더 알아보기
import collections
def solution(participant, completion):
answer = collections.Counter(participant) - collections.Counter(completion)
return list(answer.keys())[0]