본문 바로가기
Otter's [ 개발새발 ]/# 코딩테스트 - Programmers

[Programmers 코딩테스트 연습_Lv1_Python] 완주하지 못한 선수

by byeonPig 2022. 6. 11.

주소: https://programmers.co.kr/learn/courses/30/lessons/42576

 

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

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

programmers.co.kr

 

[ 문제 ]

 

 

[ 나의 귀여운 풀이 ]

def solution(participant, completion):
    answer = ''
    temp = 0
    dic = {}
    for parti in participant:
        dic[hash(parti)] = parti
        temp += hash(parti)

    for comple in completion:
        temp -= hash(comple)

    answer = dic[temp]

    return answer

 

[ 다른 분들의 유려한 코드 ]

import collections

def solution(participant, completion):
    answer = ''

    participant.sort()
    completion.sort()

    tmp = collections.Counter(participant) - collections.Counter(completion)

    answer = list(tmp)[0]

    return answer

 

[ 배운 것 ]

 

1. collections 라이브러리: 이 문제는 해시를 이용해서 푸는 문제였는데, collections.Counter() 메소드는는 각 요소들을 key로 하고 그 개수를 value로 가지는 Counter(dictionary)를 리턴한다. 이 dictionary들을 빼기 연산 하면 value가 빠지고 value가 0이되면 사라진다.

https://docs.python.org/3/library/collections.html#collections.Counter

 

[ 개인적인 만족도 ]

(수달 1~5마리)

수달: 2마리!

 

꾸준히 열심히!