문제: https://school.programmers.co.kr/learn/courses/30/lessons/1845
1. 코드
import java.util.*;
class Solution {
public int solution(int[] nums) {
int answer = 0;
HashSet <Integer> type = new HashSet<>();
for(int i = 0; i < nums.length; i++)
type.add(nums[i]);
if(type.size() >= nums.length / 2)
answer = nums.length / 2;
else
answer = type.size();
return answer;
}
}
2. 설명
int answer = 0;
HashSet <Integer> type = new HashSet<>();
for(int i = 0; i < nums.length; i++)
type.add(nums[i]);
HashSet의 경우 값을 추가할 때 중복된 값은 추가하지 않기에 중복되지 않은 폰켓몬의 종류를 알아냅니다.
if(type.size() >= nums.length / 2)
answer = nums.length / 2;
else
answer = type.size();
만약 폰켓몬의 종류의 수가 고를 수 있는 폰켓몬의 수보다 크거나 같다면 answer에 고를 수 있는 폰켓몬의 수를 저장하며 아니라면 폰켓몬의 종류의 수만큼만 answer에 저장합니다.
3. 정리
- 폰켓몬의 종류의 수를 파악한다.
- 고를 수 있는 폰켓몬의 수 ≦ 종류의 수 ⇨ 고를 수 있는 폰켓몬의 수가 정답이다.
- 종류의 수 < 고를 수 있는 포켓몬의 수 ⇨ 종류의 수가 정답이다.
출처: 프로그래머스 코딩 테스트 연습,
https://school.programmers.co.kr/learn/challenges
'컴퓨터 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 159994번: 카드 뭉치 [Java] (0) | 2023.07.26 |
---|---|
프로그래머스 - 135808번: 과일 장수 [Java] (0) | 2023.07.25 |
프로그래머스 - 138477번: 명예의 전당 (1) [Java] (2) | 2023.07.23 |
프로그래머스 - 176963번: 추억 점수 [Java] (0) | 2023.07.22 |
프로그래머스 - 132267번: 콜라 문제 [Java] (0) | 2023.07.21 |