코딩테스트 연습에 공개된 문제는 (주)그렙이 저작권을 가지고 있습니다.
(지문 하단에 별도 저작권 표시 문제 제외)
코딩테스트 연습 문제의 지문, 테스트케이스, 풀이 등과 같은 정보는 비상업적, 비영리적 용도로 게시할 수 있습니다.

코딩테스트 정보

  • 프로그래머스
  • python
  • level 1
  • 점수 : 캡쳐 못함
  • 문제 링크


문제

당신은 폰켓몬을 잡기 위한 오랜 여행 끝에….
문제 내용이 길어 생략.

풀이 코드

풀이 코드

1
2
3
def solution(nums):
  answer = min(len(set(nums)), int(len(nums) //2))
  return answer


풀이 방식

■■■■ 문제 요약 ■■■■

중복값이 있는 N개의 원소를 가진 리스트에서 N/2 개를 뽑았을 때, 최대로 뽑을 수 있는 종류는 몇가지인가?

■■■■ 접근 방식 ■■■■

리스트의 원소가 모두 중복되지 않으면 N/2 종류를 뽑을 수 있다.
리스트의 원소에서 중복인 원소가 N/2 개가 넘는다면, “중복되지 않는 원소 종류의 수” 만큼 뽑을 수 있다.

■■■■ 핵심 계산식 서술 ■■■■ (1번 풀이 기준)

(1)
```python

핵심 계산식

answer = min(len(set(nums)), int(len(nums) //2))

위 식을 풀어쓰면

a = int(len(nums) // 2) nums_count = len(set(nums)) answer = min (a, nums_count) ```