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
'코딩테스트 > Programmers' 카테고리의 다른 글
[1차] 캐시 (JS) (0) | 2023.12.13 |
---|---|
N으로 표현 (Python) (0) | 2023.09.24 |
A로 B 만들기 (Python) (0) | 2023.07.21 |
숨어있는 숫자의 덧셈 (2) (Python) (0) | 2023.07.17 |
튜플 (Python) (0) | 2023.06.01 |