완주하지 못한 선수_프로그래머스_파이썬
- 사전지식
- zip
- collections.Counter
zip()은 동일한 개수로 이뤄진 두 자료형을 순서대로 짝지어 튜플로 묶어주는 함수입니다.
participant = ["mislav", "stanko", "mislav", "ana"]
completion = ["stanko", "ana", "mislav"]
participant.sort()
completion.sort()
for par,comp in zip(participant, completion):
print(par,comp)
ana ana
mislav mislav
mislav stanko
- collections.Counter()는 리스트 안에 문자가 몇번 나왔는지 구분해줍니다. (마이너스도 가능)
- key 값을 뽑을 수 있습니다.
- elements()를 이용해서 각 값들을 다 볼 수 있습니다.
import collections
collections.Counter(participant)
Counter({'ana': 1, 'mislav': 2, 'stanko': 1})
collections.Counter(completion)
Counter({'stanko': 1, 'ana': 1, 'mislav': 1})
a = collections.Counter(participant) + collections.Counter(completion)
sorted(a.elements())
['ana', 'ana', 'mislav', 'mislav', 'mislav', 'stanko', 'stanko']
list(a.keys())[0]
'mislav'
나의 풀이
def solution(participant, completion):
participant = ["mislav", "stanko", "mislav", "ana"]
completion = ["stanko", "ana", "mislav"]
def solution(participant, completion):
participant.sort()
completion.sort()
for par,comp in zip(participant,completion):
if par != comp:
return par
return participant[-1]
solution(participant, completion)
'mislav'
다른사람 풀이
import collections
def solution(participant, completion):
answer = collections.Counter(participant) - collections.Counter(completion)
return list(answer.keys())[0]
Comments