[PS] BOJ 25631 / 마트료시카 합치기

[PS] BOJ 25631 / 마트료시카 합치기
문제 링크: https://www.acmicpc.net/problem/25631
Thumbnail: Photo by Didssph (Unsplash)

마트료시카 인형 쌓기~

풀이

​크기가 서로 다른 마트료시카 인형들은 결과적으로 가장 큰 크기의 1개 인형으로 합쳐질 수 있다. 합쳐지지 못하고 인형이 하나 더 남게 되는 경우는 결국 같은 크기의 인형이 중복될 경우이므로, 인형을 크기를 기준으로 개수를 세어 가장 많이 중복된 개수가 모든 마트료시카 인형을 합치고 남은 인형의 개수가 된다.

전체 코드

input = open(0).readline

N = int(input())

# 입력으로 주어진 모든 마트료시카를 크기를 기준으로 세어, 가장 많이 중복된 길이의 개수가 결과적으로 합치고 남는 마트료시카와 같다.
counter = {}
res = 0
for a in map(int, input().split()):
    if a in counter:
        counter[a] += 1
    else:
        counter[a] = 1
    res = max(res, counter[a])

print(res)

solution.py