반응형
https://school.programmers.co.kr/learn/courses/30/lessons/1845
풀이
홍 박사님의 총 폰켓몬의 절반을 최대한 다양한 폰켓몬으로 선택하는 문제이다.
중복없이 선택을 해야하기 때문에 바로 HashSet이 떠올랐다. HashSet을 이용하면 중복은 자동으로 제거가 되기 때문에 문제가 매우 간단해진다.
우선 총 폰켓몬을 전부 HashSet에 넣어서 중복을 제거한다. 이후에 HashSet의 사이즈가 총 폰켓몬의 절반을 넘으면 총 폰켓몬의 절반을 answer에 넣어주고, 총 폰켓몬의 절반보다 적으면 HashSet 사이즈를 넘겨주면 된다.
import java.util.HashSet;
class Solution {
public int solution(int[] nums) {
int answer = 0;
HashSet<Integer> hs = new HashSet<Integer>();
for (int n : nums) {
hs.add(n);
}
if (hs.size() > nums.length/2) {
answer = nums.length/2;
} else {
answer = hs.size();
}
return answer;
}
}
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스]JAVA - Level1. 소수 만들기 (0) | 2022.09.05 |
---|---|
[프로그래머스]JAVA - Level1. 신고 결과 받기 (0) | 2022.09.04 |
[프로그래머스]JAVA - Level1. 최소직사각형 (0) | 2022.09.03 |
[프로그래머스]JAVA - Level1. 같은 숫자는 싫어 (0) | 2022.09.01 |
[프로그래머스]JAVA - Level2. 가장 큰 수 (0) | 2022.09.01 |