[Python] 폰켓몬

허창원·2023년 8월 24일
0
post-thumbnail
post-custom-banner

문제 설명 및 링크

프로그래머스 폰켓몬 문제 링크


접근 방법 및 해결 전략

N/2개의 선택할 수 있는 방법 중 최대로 다양한 폰켓몬을 선택해야했기 때문에 중복된 데이터를 없애는 것이 우선이었다. 그래서 집합을 사용했다. 하지만 폰켓몬의 다양성 수가 N/2를 초과하는 경우가 있으므로 if - else로 경우를 나누었다.

코드 작성 및 설명

1차

def solution(nums):
    hashtable = []
    for i in nums:
        if i not in hashtable:
            hashtable.append(i)
    
    result = len(hashtable)
    if result > len(nums)/2:
        return len(nums)/2
    else:
        return result

2차

def solution(nums):
    result = len(set(nums)) // 폰켓몬의 다양성 수
    if result > len(nums)/2: // 폰켓몬의 다양성 수가 N/2 보다 큰 경우 N/2 출력
        return len(nums)/2
    else:
        return result

1차로 집합을 사용해야한다는 아이디어를 떠올리지 못해서 배열에 중복 데이터를 for문으로 배제하며 추가해주었다. 하지만 나중에 집합을 사용하면 데이터의 중복을 쉽게 없앨 수 있음을 깨닫고 코드를 수정하였다.

post-custom-banner

0개의 댓글