문제
https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=java
나의 풀이
import java.util.HashSet;
import java.util.Set;
class Solution {
public int solution(int[] nums) {
int answer = 0;
Set set = new HashSet<Integer>();
for (int num : nums) {
set.add(num);
}
answer = set.size() > nums.length / 2 ? nums.length / 2 : set.size();
return answer;
}
}
해시 알고리즘이다. HashSet을 활용해서 중복을 지워주고 N/2까지 가져갈 수 있으므로 종류가 N/2보다 많으면 N/2만큼이 최대로 가져갈 수 있고, 그보다 적으면 종류수만큼 가져갈 수 있다.
'알고리즘 & 문제 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 음양 더하기(java) (0) | 2023.02.13 |
---|---|
[프로그래머스] 둘만의 암호(java) (0) | 2023.02.10 |
[프로그래머스] 모의고사(java) (0) | 2023.02.08 |
[프로그래머스] 부족한 금액 계산하기(java) (0) | 2023.02.08 |
[프로그래머스] 없는 숫자 더하기(java) (0) | 2023.02.08 |