I about me

[Python] 폰켓몬 본문

Algorithm/프로그래머스

[Python] 폰켓몬

ssungni 2024. 4. 17. 14:55

[예시]

 

ex 1)

[3번, 1번, 2번, 3번] →  {3번: 2, 1번: 1. 2번: 1} 
즉, len(nums) = 4마리 중 2마리 선택 가능

종류는 3종류 있지만 2마리 고를 수 있는 상황에서

가장 많은 종류의 폰켓몬을 선택하는 방법은 어차피 return len(nums) / 2

 

ex 2) 

[3,3,3,2,2,4] →  {3번: 3, 1번: 2. 2번: 4}

즉, len(nums) = 6마리 중 3마리 선택 가능

1번, 2번, 3번 이렇게 고르는 것이 가장 많은 종류의 포켓몬을 선택하는 것이므로 

return  len(nums) / 2 or 딕셔너리 키들의 종류의 길이

 

ex 3)

[3,3,3,2,2,2] →  {3번: 3, 2번: 3}

즉, len(nums) = 6마리 중 3마리 선택 가능

종류는 2종류 밖에 없는데 3마리 선택 하려면

3번 2번 2번 or 3번 3번 2번 밖에 안 됨!

return 딕셔너리 키들의 종류의 길이

 

즉, 선택할 수 있는 것(len(nums)/2) 것이 커도 종류(len(dic.keys()))가 작으면 return 종류를 따른다는 것이다!

def solution(nums):
    dic = {}
    for i in nums:
        if i in dic.keys():
            dic[i] += 1
        elif i not in dic.keys():
            dic[i] = 1
    print(dic)
    
    if len(nums)/2 < len(dic.keys()):
        return len(nums)/2
    else:
        return len(dic.keys())

진짜 이번 코드를 나 혼자의 힘으로 해보면서 느낀 점은 예시를 미친듯이 뽀개보는 것이 살길이라는 것이다!!

난 할 수 있다!!

 

'Algorithm > 프로그래머스' 카테고리의 다른 글

[Python] 예상 대진표  (0) 2024.05.18
[Python] 문자열 내 p와 y의 개수  (0) 2024.05.17
[Python] 햄버거  (0) 2024.04.17
[Python] 의상  (0) 2024.04.15
[Python] 외계인 사전  (0) 2024.04.15