본문 바로가기
문제풀이/프로그래머스

폰켓몬 / 프로그래머스 연습문제 / programmers / level1 / Java

by RUCKUS 2021. 6. 8.

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

 

코딩테스트 연습 - 폰켓몬

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

programmers.co.kr


이번문제는 순식간에 풀었다.

level1은 이제 어느 정도 쉽게 어떤식으로 풀어야할지 감이 오는 것 같다.

 


[알고리즘 Flow]

1. 가져갈 수 있는 최대 폰켓몬 수를 구해준다.

2. 폰켓몬의 종류의 수를 구해준다.

3. 둘의 값을 비교하여 가져갈 수 있는 최대 폰켓몬 수가 작으면 해당 수를 리턴하고, 그렇지 않으면 종류의 수를 리턴한다.

 

[코드결과]

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

class Solution {
    public int solution(int[] nums) {
        int answer = 0;
        // Set에 주어진 nums들을 넣어줘서 중복을 제거한다.
        Set<Integer> set = new HashSet<Integer>();
        
        for (int i = 0; i < nums.length; i++) {
            set.add(nums[i]);
        }

        // 가져갈 수 있는 폰켓몬 최대수
        int a = nums.length / 2;
        
        // 종류 최대수
        int b = set.size();
        
        // 가져갈 최대수가 종류의 최대수보다 작으면 가져갈 최대수 리턴 아니면 종류 최대수 리턴
        if (a < b) {
        
            answer = a;
            
        } else {
            answer = b;
        }

        return answer;
    }
}

 


진짜 30분도 안걸린 것 같다... 전에 푼 키패드 누르기는 몇 시간이나 걸렸는데...

level1도 차이가 심하다.

그래도 예전에는 몇일씩 풀던걸 이제 하루도 안걸리게 풀고 있으니...

인간의 욕심은 끝이 없다. 10분안에 풀고 싶다.

 


[깃허브]

https://github.com/RUCKUSJERRY/practiceOfJava/blob/main/Prs_Pratice/src/com/level01/phoneketmon.java

 

RUCKUSJERRY/practiceOfJava

Contribute to RUCKUSJERRY/practiceOfJava development by creating an account on GitHub.

github.com