동까의 코딩

[python] 프로그래머스 - 폰켓몬 본문

문제 풀이/프로그래머스

[python] 프로그래머스 - 폰켓몬

동까의 코딩 2025. 3. 11. 13:48
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=python3

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

문제정리

1. 폰켓몬은 종류에 따라 번호로 구분한다. 같은 폰켓몬을 데려갈 수도 있지만 N/2의 폰켓몬 수까지 데려가려고 한다.

2. 같은 폰켓몬은 최대 2마리까지 데려갈 수 있다.

3. 가장 많은 폰켓몬을 고르기 위한 코드를 작성하라.

 

풀이과정

1. 전체 리스트를 반으로 줄인 길이를 저장

2. set함수를 통해 중복을 제거하고 리스트의 길이를 저장

3. 두 길이 값을 서로 비교하여 맥스 값보다 중복제거 리스트가 크면 맥스 값을 출력하고, 작으면 중복제거 리스트 크기를 출력한다.

 

def solution(nums):
    answer = 0
    # 절반만 뽑으면 된다.
    # 절반중에 겹치지 않는 포켓몬이 절반 이상이면 절반 값 / 이하면 그 값을 출력한다.
    max_len = len(nums) / 2
    nums_len = len(set(nums))
    if max_len >= nums_len:
        answer = nums_len
    else:
        answer = max_len
    
    return answer
반응형