나의 풀이
def solution(nums):
choice_cnt = int(len(nums)//2)
kind_cnt = len(set(nums))
if choice_cnt > kind_cnt:
return kind_cnt
else:
return choice_cnt
▶ ex1) nums=[1,2,3,4,5,5,5,5] 라면 전체 포켓몬의 종류의 수(kind_cnt)는 [1,2,3,4,5] =>총 5종류가 된다.
▶ choice_cnt=len(nums)//2=총 마리수//2)
▶ 하지만 최대 가져갈 수 있는 포켓몬은 최대 8마리 중 절반인 4마리(choice_cnt) 이므로 결국엔
4종류 밖에 선택이 안된다. 따라서 4를 return해야 한다. (kindcnt>choicecnt)
▶ ex2) nums=[1,2,3,4,5,5,5,5,5,5,5,5] 라면
전체 포켓몬의 종류의 수(kind_cnt)는 [1,2,3,4,5] =>총 5종류가 된다
▶하지만 최대 가져갈 수 있는 포켓몬의 마리수는 최대 12마리 중 절반인 6마리(choicecnt)이므로
6마리(choice_cnt)를 선택하더라도 중복이 있으므로 포켓몬의 종류는 5종류로 끝난다.
따라서 5를 return해야 한다. (kindcnt < choicecnt)
'프로그래머스(파이썬) > LV.1(파이썬)' 카테고리의 다른 글
신규 아이디 추천→isalpha(), isdigit(), 정규식★★ (0) | 2022.12.21 |
---|---|
크레인 인형 뽑기 →"열"접근★★ + 전부 1씩 빼주기(람다식)★★ (0) | 2022.12.21 |
키패드 누르기→매개변수로 값주기, 현재값, next값★ (0) | 2022.12.20 |
숫자 짝꿍 → 일치 + count() + min(a,b) + len(answer) == a.count('0')★★ + 모든 요소가 0인 경우 (0) | 2022.12.20 |
과일장수 →특정요소 여러 개 제거★★+ 1차원 리스트 슬라이싱(n등분)★★ (0) | 2022.12.20 |