Hash란?
Hash는 임의 크기의 데이터를 고정 크기의 값으로 변환하는 함수 또는 알고리즘을 의미
HashSet?
HashSet은 중복되지 않는 고유한 값을 저장하기 위한 자료 구조
해결 흐름
1. int[] nums의 중복 요소를 제거하고 그 길이를 리턴 -> HashSet 사용
2. nums/2 개 만큼 폰켓몬을 데려갈 수 있는데 nums/2 크기가 HashSet의 크기보다 작다면 최대 종류 별로 nums/2 까지 밖에 못 데려감 -> nums/2 리턴, HashSet 크기가 nums/2 보다 작다면 HashSet 크기 리턴
입출력 예
nums, result
[3,1,2,3] | 2 |
[3,3,3,2,2,4] | 3 |
[3,3,3,2,2,2] | 2 |
코드
import java.util.*;
class Solution {
public int solution(int[] nums) {
int answer = 0;
int length = nums.length;
HashSet<Integer> hashSet = new HashSet<>();
for (int num : nums) {
hashSet.add(num);
}
return (hashSet.size() < length/2) ? hashSet.size() : length/2 ;
}
}
'Development > PS' 카테고리의 다른 글
[Hash] 프로그래머스 level 1 완주하지 못한 선수 python 풀이 (1) | 2023.11.09 |
---|---|
[정렬] 프로그래머스 level 2 H-Index python 풀이 (0) | 2023.11.06 |
[Heap] 프로그래머스 level 2 더 맵게 java 풀이 (0) | 2023.09.19 |
[정렬] 프로그래머스 level 2 가장 큰 수 python, java 풀이 (0) | 2023.09.17 |
[완전 탐색] 프로그래머스 level 1 최소직사각형 python 풀이 (0) | 2023.09.13 |