알고리즘/백준

백준 11652번 - 카드 / Python

Hwisaek 2021. 9. 27. 17:24
반응형

문제: https://www.acmicpc.net/problem/11652

 

11652번: 카드

준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다. 준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지

www.acmicpc.net

문제 설명

더보기

문제

준규는 숫자 카드 N장을 가지고 있다. 숫자 카드에는 정수가 하나 적혀있는데, 적혀있는 수는 -262보다 크거나 같고, 262보다 작거나 같다.

준규가 가지고 있는 카드가 주어졌을 때, 가장 많이 가지고 있는 정수를 구하는 프로그램을 작성하시오. 만약, 가장 많이 가지고 있는 정수가 여러 가지라면, 작은 것을 출력한다.

입력

첫째 줄에 준규가 가지고 있는 숫자 카드의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 숫자 카드에 적혀있는 정수가 주어진다.

출력

첫째 줄에 준규가 가장 많이 가지고 있는 정수를 출력한다.


 


정답

import sys
from collections import Counter

input = sys.stdin.readline

n = int(input())
numbers = [int(input()) for _ in range(n)]
count = Counter(numbers)
maximum = max(count.values())
result = list(map(lambda x: x[0], filter(lambda x: x[1] == maximum, count.items())))
print(sorted(result)[0])

 


풀이

 배열 원소 별 수를 세는 문제입니다. 파이썬에서는 Counter라는 강력한 라이브러리를 지원하므로 이를 이용하여 문제를 해결하면 됩니다.

 

 그리고 filter() 함수는 조건에 맞는 원소들만 가지고 새로운 리스트를 반환하는 함수로, 최댓값을 찾을 때 간단하게 사용할 수 있습니다.

반응형

'알고리즘 > 백준' 카테고리의 다른 글

백준 2525번 - 오븐 시계 / Go  (0) 2022.04.12
백준 11050번 - 이항 계수 1 / Python  (0) 2021.09.27
백준 1094번 - 막대기 / Python  (0) 2021.09.27
백준 10953번 - A+B - 6 / Python  (0) 2021.09.27
백준 5430번 - AC / Python  (0) 2021.09.27