본문 바로가기
메모장/코딩테스트 준비

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

by code2772 2023. 3. 22.

[ 목차 ]

    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. 아니면 최소수를 반환하여 문제를 품

    반응형