본문 바로가기
알고리즘 문제

백준 20937

by hyunjing0 2021. 3. 11.
from collections import Counter

N = int(input())
ddeokguk = [i for i in map(int, input().split())]
print(max(Counter(ddeokguk).values()))

처음엔 단순히 내림차순으로 정렬한 뒤 크기가 작으면 접시를 추가했는데 오류가 있었다.

 

 

 

 

코드에서는 (4,3,2) | (2,1) 로 접시가 나뉘지만

사실은 (4,3,2,1) | (2) 로 나뉘어야 하기 때문이다.

우연히 2라는 답은 똑같았지만 예시가 달라지면 답도 달라졌다.

 

 

 그래서 얻은 답은 가장 많이 나왔던 크기의 접시의 개수이다.

 

같은 크기의 접시는 쌓을 수 없기 때문에 찢어져야 한다.

따라서 맨 밑이든 맨 위든 접시무리 하나당 무조건 하나씩 끼워져있어야 한다는 뜻이다.

 

 

 


Counter() 함수에 대해서도 알게되었다!

'알고리즘 문제' 카테고리의 다른 글

백준 20044  (0) 2021.03.13
백준 13413  (0) 2021.03.13
백준 2847  (0) 2021.03.11
백준 13305  (0) 2021.03.09
백준 19939  (0) 2021.03.09