티스토리 뷰

흥미/코딩테스트

#30😊 폰켓몬

RadderNepa 2024. 3. 7. 00:39

[문제]

출처 : https://school.programmers.co.kr
출처 : https://school.programmers.co.kr


[해답]

import java.util.*;

class Solution {
    public int solution(int[] nums) {
        // 1.
        // 반복문을 돌면서 폰켓몬 번호대로 map에 넣는다. ==> map.put(폰켓몬 번호, 폰켓몬 번호);
        // 풀이의 키포인트는 key의 개수이기에 value는 중요하지 않다.
        
        // 2.
        // 반복문이 끝난 후 keySet 메소드를 이용해 key의 개수를 알아낸다.(key의 개수 = 폰켓몬의 종류 개수)
        
        // 3.
        // 가져갈 수 있는 폰켓몬 마릿수 = nums.length / 2
        
        // 3.
        // 경우의 수는 총 3가지
        // 1. 폰켓몬의 종류 개수 > 가져갈 수 있는 폰켓몬 마릿수 ==> 가져갈 수 있는 폰켓몬 마릿수
        // 2. 폰켓몬의 종류 개수 < 가져갈 수 있는 폰켓몬 마릿수 ==> 폰켓몬의 종류 개수
        // 3. 폰켓몬의 종류 개수 = 가져갈 수 있는 폰켓몬 마릿수 ==> 둘 중 아무거나 해도 상관 없음
        
        Map<Integer, Integer> map = new HashMap<>();
        for(int num : nums) {
            map.put(num, num);
        }
        
        int answer = 0;                     // return 값
        int monster = map.keySet().size();  // 폰켓몬의 종류 개수
        int take = nums.length / 2;         // 가져갈 수 있는 폰켓몬 마릿수
        
        // if(monster > take) {
        //     answer = take;
        // } else if(monster <= take) {
        //     answer = monster;
        // }
        // return answer;
        
        // 결국은 최소값을 찾는거라 아래처럼 간단하게 return 해도 됨
        return Math.min(monster, take);
    }
}

'흥미 > 코딩테스트' 카테고리의 다른 글

#32😊 카펫(완전탐색)  (0) 2024.03.13
#31😂 모의고사(완전탐색)  (0) 2024.03.12
#29🤔 올바른 괄호  (0) 2024.03.04
#28😊 같은 숫자는 싫어 with Stack  (0) 2024.02.26
#27😊 두 개 뽑아서 더하기  (0) 2023.08.10
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함