기록

[programmers/python] 폰켓몬 - 최대한 다양한 종류 고르기, Set 본문

코딩테스트/python

[programmers/python] 폰켓몬 - 최대한 다양한 종류 고르기, Set

zyin 2025. 5. 24. 18:33

문제


예시

nums = [3, 1, 2, 3]
# 선택할 수 있는 최대 마리 수: 4 // 2 = 2
# 폰켓몬 종류 수: 3 (1, 2, 3)
# 최대한 다양한 종류를 고르면 최대 2종류 선택 가능
# → 정답: 2

풀이 전략

핵심은 다음 두 가지다:

  1. 내가 고를 수 있는 폰켓몬 수는 N / 2 마리다.
  2. 폰켓몬의 종류 수가 그보다 작으면 종류 수만큼만 고를 수 있다.

→ 정리하면, 최대 선택 가능한 종류 수는 아래 두 값 중 작은 값이다.

min(고를 수 있는 수, 폰켓몬 종류 수)

즉,

min(len(nums) // 2, len(set(nums)))

코드

def solution(nums):
    return min(len(nums)//2, len(set(nums)))
Comments