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

 

코딩테스트 연습 - 폰켓몬

당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.

programmers.co.kr


풀이 과정

폰켓몬을 가장 많이 고르는 경우 몇가지를 고를 수 있냐를 리턴해주면 된다.

 

모두 다른 종류의 폰켓몬이 들어왔다 해도 N/2개 만큼의 폰켓몬만 고를 수 있고, 폰켓몬의 종류가 3가지 밖에 안들어왔다면 5000개의 폰켓몬이 들어왔다 하더라도 3가지의 폰켓몬 밖에 고를수 없음을 알 수 있다.

 

따라서 답은 min(폰켓몬의 종류, N/2)이다.

 

 

 

 


소스 코드

def solution(nums):
    answer = 0
    dictionary = {}
    for i in nums:
        if i not in dictionary:
            dictionary[i] = 1
        else:
            dictionary[i] += 1
    
    min_value = min(len(dictionary), len(nums) // 2)
    answer = min_value
        
    return answer

+ Recent posts