파이썬

백준 10546 파이썬 해시 완주하지 못한 선수

mcdn 2021. 7. 6. 21:56
반응형

https://www.acmicpc.net/problem/10546

 

10546번: 배부른 마라토너

마라토너라면 국적과 나이를 불문하고 누구나 참가하고 싶어하는 백준 마라톤 대회가 열린다. 42.195km를 달리는 이 마라톤은 모두가 참가하고 싶어했던 만큼 매년 모두가 완주해왔다. 단, 한 명

www.acmicpc.net

 

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

 

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

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

programmers.co.kr

 

def solution(p, c):
    p.sort()
    c.sort()
    for i in range(len(p) - 1):
        if (p[i] != c[i]):
            return (p[i])
    return (p[-1])

# 모범 풀이 
# import collections


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

 

대단하다! collections.Counter()은 리스트의 요소의 개수를 세주는 객체이다. 

컨테이너에 동일한 값의 자료가 몇개인지를 파악하는데 사용하는 객체이다.

그래서 collections.Counter(participant)안에는 마라토너 이름 : 1 이렇게 나올 것이다. counter(completion)도 마찬가지 

하지만 한 명은 완주하지 못했으므로 completion과 다를 것이고 그 사이 빼주면 개수가 다른 거 하나만 남음 

그래서 [0]인덱스에 위치에 있는 answer의 요소의 keys() 즉 이름을 반환하면 된다. 

counter로 한번 고쳤으니 list()로 고쳐줘야 하고 ㅇㅇ 

 

 

https://ychae-leah.tistory.com/23

 

[algorithm] level-1 완주하지 못한 선수 - 2 (python)

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

ychae-leah.tistory.com

https://excelsior-cjh.tistory.com/94

 

collections 모듈 - Counter

collections.Counter() 컨테이너에 동일한 값의 자료가 몇개인지를 파악하는데 사용하는 객체이다. docs.python.org에서 Counter함수에 대해 자세히 알아볼 수 있다. A Counter is a dict subclass for counting h..

excelsior-cjh.tistory.com

참고한 블로그들 

 

 

반응형