본문 바로가기

알고리즘&자료구조/Programmers

[프로그래머스] 코딩테스트 연습 - 해시

문제 : https://programmers.co.kr/learn/courses/30/lessons/42576

 

코딩테스트 연습 - 완주하지 못한 선수

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수

programmers.co.kr

 

나의 풀이 : 

def solution(participant, completion):
    dic_name = {}
    for runner in participant:
        if runner not in dic_name.keys(): dic_name[runner] = 0
        dic_name[runner] += 1
        
    for runner in completion:
        if runner in dic_name.keys(): dic_name[runner] -= 1
    
    for ans in dic_name.keys():
        if dic_name[ans] == 1:
            answer = ans
    return answer

다른 사람 풀이 : 

import collections


def solution(participant, completion):
    answer = collections.Counter(participant) - collections.Counter(completion)
    return list(answer.keys())[0]

배운 점 :

더보기
더보기

python collenction에 대해 알게 되었다. 아래 링크를 참고하면 도움이 될 것 같다. 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=ouo7581&logNo=221543909505