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

 

코딩테스트 연습 - 폰켓몬

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

programmers.co.kr

 

 

문제 분석

- HashSet을 사용하여 중복된 종류의 숫자를 제거하여 추가한다.

- 가장 많은 종류의 폰켓몬을 구하고, 종류의 최대값은 N/2이기때문에 정답(answer)이 N/2보다 큰 경우 정답을 N/2로 변경한다. 

 

 

문제 풀이

1. HashSet에 중복을 제거한 배열 원소를 추가한다.

2. 최대 개수는 N/2를 넘을 수 없기때문에 넘는 경우 N/2로 정답을 변경한다.

3. 정답을 출력한다.

import java.util.*;

class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        
        Set<Integer> set = new HashSet<>();
        
        for(int i=0;i<nums.length;i++){
            set.add(nums[i]);
        }
        
        answer = set.size();
        if(answer > nums.length/2){
            answer = nums.length/2;
        }
        
        return answer;
    }
}

 

 

https://github.com/SOEUN2/Algorithm

'Algorithm > programmers' 카테고리의 다른 글

programmers 모의고사  (0) 2022.03.13
programmers 체육복  (0) 2022.03.13
programmers 실패율  (0) 2022.03.13
programmers 약수의 개수와 덧셈  (0) 2022.03.13
programmers 3진법 뒤집기  (0) 2022.03.13