[lv.1] 폰켓몬

RTUnu12·2024년 2월 15일
0

Programmers

목록 보기
1/41

https://school.programmers.co.kr/learn/courses/30/lessons/1845

  • 문제
    대충 n개의 포켓몬중 n/2개를 고를때, 가장 많은 종류를 얻을 때의 종류의 수

  • 풀이
    HashSet은 contains 함수의 시간복잡도가 O(1)이다. 그러기에 그냥 set에 없으면 넣고 있으면 넣지 않는다.

  • 코드

import java.util.*;

class Solution {
    public int solution(int[] nums) {
        Arrays.sort(nums);
        int n = nums.length;
        int answer = 0;
        HashSet<Integer> set = new HashSet<>();
        for(int i=0; i<n; i++){
            if(!set.contains(nums[i])){
                set.add(nums[i]);
                answer++;
            }
        }
        if(answer > n/2) answer = n/2;
        return answer;
    }
}
profile
이제 나도 현실에 부딪힐 것이다.

0개의 댓글