def solution(participant, completion):
answer = ''
for i in participant :
if i in completion :
completion.remove(i)
else :
answer += i
return answer
단순히 리스트에서 중복된 값을 빼주면서 남은값을 리턴해주는 방식으로 만들었다. 근데 값은 맞았지만 유효성검사에서 실패라고 하여 구글링을 하니 collections
라는 모듈을 쓰는 것을 추천했다.
import collections
def solution(participant, completion):
answer = collections.Counter(participant) - collections.Counter(completion)
return list(answer.keys())[0]
collections.Counter([iterable-or-mapping])
# collections.Counter 뺄셈 예시
x = ['marina', 'josipa', 'nikola', 'vinko', 'filipa']
y = ['josipa', 'filipa', 'marina', 'nikola']
print(collections.Counter(x))
# Counter({'marina': 1, 'josipa': 1, 'nikola': 1, 'vinko': 1, 'filipa': 1})
print(collections.Counter(y))
# Counter({'marina': 1, 'josipa': 1, 'nikola': 1, 'filipa': 1})
print(collections.Counter(x) - collections.Counter(y))
# Counter({'vinko': 1})
a = collections.Counter(x) - collections.Counter(y)
print(list(a)) # list(a) = list(a.keys()) 결과값 같음
# ['vinko']
print(list(a)[0])
# vinko