[프로그래머스/Java] 폰켓몬 : HashSet 이용

김하밍·2023년 10월 17일

알고리즘

목록 보기
4/22

1. 문제


문제 출처
연구소에 있는 전체 폰켓몬 N마리 중 1/2을 데려갈 수 있다. 데려갈 수 있는 최대한의 종류를 선택할 것이기 때문에 가장 많이 가져갈 수 있는 폰켓몬 종류이 개수를 구하여라.

2. 문제 해석


Todo: 가장 많이 가져갈 수 있는 폰켓몬 종류 번호의 개수 구하기
1. 연구소에 있는 전체 폰켓몬 중 1/2을 데려갈 것임
2. 최대한 모두 다른 종류의 폰켓몬 선택할 것임

문제에 제시되어있는 조건 및 제한사항은 따로 코드로 입력하지 않아도 된다.

3. 제출한 코드


import java.util.HashSet;

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

(1) 변수 limit -> 선택할 수 있는 폰켓몬 수 = N/2
(2) 정수형 HashSet set -> 중복된 종류의 폰켓몬을 방지하기 위한 자료구조
(3) forEach로 nums 배열의 각 원소를 ponketmon 으로 가져와서 set 에 추가
(4) limit 와 set 의 크기 중 작은 값을 반환 -> 중복이 제거된 폰켓몬 종류의 개수와 최대로 반환할 수 있는 개수 중 작은 값을 반환

<참고> HashSet 이해

profile
나만의 언어로 기록하며 성장하기 !

0개의 댓글