취업 및 이직 준비/코딩테스트 준비

프로그래머스 - (폰켓몬) - 자바 - 코딩테스트연습

code2772 2023. 3. 22. 10:35
728x90
반응형
import java.util.*;
class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        int min = nums.length/2;
        
        HashSet<Integer> set = new HashSet<>();
//중복을 없에기 위해 set 사용
// Set은 객체를 중복해서 저장할 수 없고 하나의 null 값만 저장할 수 있다.
        for (int n : nums){
            set.add(n);
        }
// HashSet의 크기는 size()를 이용
        if(min >= set.size()) answer = set.size();
        else answer = min; 
// 크기만 나오면 되기 때문에 그냥 사이즈를 계산 
        return answer;
    }
}

HashSet : 중복을 없에기 위해 set 사용, Set은 객체를 중복해서 저장할 수 없고 하나의 null 값만 저장할 수 있다.
HashSet<Integer> set = new HashSet<>(); : set을 사용하기 위해 선언
 
1. 최소로 선택할 수 있도록 min.length/2 를 선언 6개면 3개 처럼
2. HashSet 을 이용하여 중복을 제거하기 위해 HashSet set = new HashSet<>() 선언
3. for문을 돌려 중복을 제거
4. 최소 수보다 해쉬셋 사이즈가 적으면 헤쉬셋을 반환
5. 아니면 최소수를 반환하여 문제를 품

반응형