본문 바로가기

알고리즘 문제

프로그래머스 완주하지 못한 선수

p_dict에 참가자들 이름을 key로 하고 인원 수를 value로 하는 dict를 만든다.

완주한 선수 리스트를 돌면서 p_dict의 key로 접근해서 if문에서 안걸러지면 0이 아니라는 의미니까 1을 빼준다.

p_dict를 돌면서 value가 0이 아니면 참가는 했지만 완주는 못한 사람이 key라는 의미이므로 key를 반환한다.

def solution(participant, completion):
    p_dict = {}
    for p in participant:
        if p not in p_dict:
            p_dict[p] = 1
        else:
            p_dict[p] += 1
    for c in completion:
        if p_dict[c]:
            p_dict[c] -= 1
    for i in p_dict:
        if p_dict[i] != 0:
            return i

출처 https://programmers.co.kr/learn/courses/30/lessons/42576?language=python3

 

코딩테스트 연습 - 완주하지 못한 선수 | 프로그래머스

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 partic

programmers.co.kr

 

 

'알고리즘 문제' 카테고리의 다른 글

프로그래머스 위장  (0) 2019.08.28
프로그래머스 전화번호 목록  (0) 2019.08.28
백준 2775번 부녀회장이 될테야  (0) 2018.11.04
백준 1193번 분수찾기  (0) 2018.11.04
백준 1316번 그룹 단어 체커  (0) 2018.11.03