프로그래밍/Algorithm

[프로그래머스] 폰켓몬

일단개그하다 2022. 11. 6. 22:17

문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

접근 방법 및 풀이

사용 언어: Java

가장 많은 종류의 폰켓몬을 골랐을 때 그 폰켓몬의 종류의 수를 반환

폰켓몬의 종류는 중복이 존재

고를 수 있는 수보다 폰켓몬의 종류가 적은 경우에는 폰켓몬의 종류의 수가 폰켓몬을 고를 수 있는 종류의 한계

폰켓몬의 종류를 Set을 이용하여 중복을 제거

import java.util.HashSet;
import java.util.Set;

public class Q30_1845 {
    public int solution(int[] nums) {
        Set<Integer> set = new HashSet<>();
        for (int num : nums) {
            set.add(num);
        }
        int size = nums.length / 2;
        return Math.min(size, set.size());
    }
}

폰켓몬을 Set에 저장하여 중복을 제거 한 후 폰켓몬 종류와 폰켓몬을 고를 수 있는 수 중에 작은 값을 반환