코딩테스트/Programmers
완주하지 못한 선수 (Python)
동띵
2023. 7. 25. 20:50
https://school.programmers.co.kr/learn/courses/30/lessons/42576
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr

def solution(participant, completion):
players = dict.fromkeys(participant, 0)
for player in participant:
players[player] += 1
for player in completion:
if player in players:
players[player] -= 1
return sorted(players.items(), key=lambda x: x[1], reverse=True)[0][0]
- 사용자 이름과 등장 횟수를 세기 위해 dict.fromkeys 사용하여 key가 사용자 이름이고 value 초깃값이 0인 딕셔너리 선언
- 참여 선수 이름의 배열을 돌며 해당 선수 이름이 dict에 있으면 value 값 1 증가
- 완주한 선수 이름 배열을 돌며 해당 선수 이름이 dict에 있으면 value 값 1 감소
- items()를 사용해 딕셔너리의 값을 추출하고, value 값을 기준으로 내림차순 정렬
- 그럼 완주하지 못한 선수의 value 값이 1이므로 가장 앞으로 가기 때문에 0번째 인덱스에 접근
- (선수 이름, 등장 횟수) 형태이기 때문에 이름만 return 하기 위해 0번째 인덱스에 접근하여 return