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