알고리즘 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 중에 작은애를 선택하면 되는 문제였다;;;
후,, 조금씩 감을 찾아가보자고...!! 화이팅