이 문제에서 내가 자꾸 통과를 하지 못한 부분은 효율성 부분이었다.
나머지 코드들 모두 정확성은 통과했다.
def solution(participant, completion):
# for i in completion:
# participant.remove(i)
# return participant[0]
# for i in participant:
# if completion.count(i) != participant.count(i):
# return i
# for i in participant:
# if i not in completion:
# return i
# else :
# completion.remove(i)
result = {}
for i in participant:
if i in result:
result[i] +=1
else :
result[i] = 1
for k in completion:
result[k] -=1
return [k for k, v in result.items() if v == 1 ][0]
아래의 것은 다른 사람의 풀이 중 내 의도와 가장 같은 것을 가져왔다.
result = {}
def solution(participant, completion):
for a in participant:
result[a] = result.get(a, 0) + 1
for b in completion:
result[b] -= 1
if result[b] == 0:
del result[b]
return list(result.keys())[0]
내 코드와의 차이는
get method를 어제 정리했지만 문제 풀 때는 생각이 나지 않았었다.
다음에 꼭 활용 할 수 있기를!