본문 바로가기

ETC

[LV1] 완주하지 못한 선수 python

반응형

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

 

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

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

programmers.co.kr

카운터 라이브러리를 사용해 볼 수있는 해시 문제이다.

카운터는 키 끼리 뺄 수가 있다.

따라서 참가자에는 있는데 완주자에는 없는 사람이 답이다.

from collections import Counter

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

 

카운터 더 알아보기

box1 = collections.Counter({"pen":4,"pencil":6,"eraser":3,"coins":4})

box2 = collections.Counter({"pen":2,"pencil":2,"eraser":1,"coins":4})

print(box1-box2)

# Counter({'pencil': 4, 'pen': 2, 'eraser': 2}) 키가 사라진다.

box1.subtract(box2)
print(box1)

# Counter({'pencil': 4, 'pen': 2, 'eraser': 2, 'coins': 0}) 키가 살아있다.

# 추가된 리스트를 누적하여 센다.

box1.update(box2)
print(box1)

# Counter({'pencil': 6, 'pen': 4, 'coins': 4, 'eraser': 3})

# 가장 갯수가 많은 2개를 출력한다.

print(box1.most_common(n=2))

# [('pencil', 6), ('pen', 4)]
반응형

'ETC' 카테고리의 다른 글

[LV1] K번째 수 Python  (0) 2020.10.03
[LV1] 모의고사 python  (0) 2020.10.03
[LV1] 프로그래머스 최대값 구하기 mysql  (0) 2020.10.03
[LV1] 2개 뽑아서 더하기 Python  (0) 2020.10.03
[LV1] 크레인 인형뽑기 Python  (0) 2020.10.03