Coding Test/프로그래머스

[프로그래머스 자바 JAVA] 폰켓몬 (level 1)

똧이 2022. 3. 18. 18:15
반응형

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

 

코딩테스트 연습 - 폰켓몬

당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.

programmers.co.kr

 

 

 

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

class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        int count = nums.length / 2; // 1. 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가는 것이므로 N.length / 2를 해준다.
        Set<Integer> set = new HashSet<>(); // 2. 가장 많은 종류의 폰켓몬을 선택하는 방법을 찾는 것이므로 중복을 제외하고 몇 종류의 폰켓몬이 있는지 구하기 위해 씀.
        // HashSet: 중복 저장 불가능
        
        for(int num : nums){
            set.add(num);
        }
        // 3. 몇 종류의 폰켓몬이 있는지 구하기 위해 set에 배열을 넣는다.

        if(set.size() >= count){ // N/2마리보다 중복을 제외한 폰켓몬의 수가 많다면
            answer = count; // N/2 만큼 선택할 수 있고
        } else { // 그렇지 않다면 = N/2마리보다 중복을 제외한 폰켓몬의 수가 적다면
            answer = set.size(); // 중복을 제외한 폰켓몬 수만큼 선택할 수 있다.
        }

        return answer;
    }
}

 

 

728x90