m1ndy5's coding blog

프로그래머스 폰켓몬 with Python 본문

알고리즘 with python/20240909

프로그래머스 폰켓몬 with Python

정민됴 2024. 9. 9. 20:52

알고리즘을 그동안 너무 쉬어서 쉬운애들부터 조금씩 다시 풀어봐야겠다.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

N/2마리의 포켓몬을 가져갈 수 있는데 최대한 다른 종류로 가져가려고 한다.

최대한 몇 종류의 포켓몬을 가져갈 수 있는지에 대한 문제였다.

from collections import defaultdict

def solution(nums):
    answer = len(nums)//2
    
    d = defaultdict(int)
    
    for n in nums:
        d[n] += 1
        
    kinds = len(d.keys())
    
    # N/2보다 종류가 적다면
    if answer > kinds:
        answer = kinds
    
    return answer

일단 dictionary를 선언하여 담았고 dictionary.keys()의 길이는 종류가 될 것이다.

만약 종류의 개수가 N/2보다 적다면 종류의 개수 자체가 최댓값이 될것이다.

 

그런데 너무 알고리즘을 쉬었다보다.. 사실 set()을 사용하면 금방 풀리는 문제였는데ㅋㅋㅋㅋㅋ

set의 길이와 N//2 중에 작은애를 선택하면 되는 문제였다;;;

후,, 조금씩 감을 찾아가보자고...!! 화이팅