코딩테스트/프로그래머스

[Java] 프로그래머스 - 폰켓몬 (1단계)

배똥회장 2022. 4. 26. 11:41
728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? O
본인의 실력으로 풀었는가? O

 

 

코딩테스트 연습 - 폰켓몬

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

programmers.co.kr

 

 

 

 

 

import java.util.*;

class Solution {
    public int solution(int[] nums) {
        HashMap<Integer, Integer> list = new HashMap<>();
        
        for (int i = 0; i < nums.length; i++) {
            list.put(nums[i], list.getOrDefault(nums[i], 0) + 1);
        }
        
        return (nums.length / 2 > list.size()) ? list.size() : nums.length / 2;
    }
}

 

테스트 1 통과 (0.02ms, 81.9MB)
테스트 2 통과 (0.08ms, 75.6MB)
테스트 3 통과 (0.02ms, 74.3MB)
테스트 4 통과 (0.02ms, 72.7MB)
테스트 5 통과 (0.07ms, 75.3MB)
테스트 6 통과 (0.03ms, 73.5MB)
테스트 7 통과 (0.36ms, 73.8MB)
테스트 8 통과 (0.23ms, 74.1MB)
테스트 9 통과 (0.30ms, 76.5MB)
테스트 10 통과 (0.27ms, 82.4MB)
테스트 11 통과 (0.36ms, 75.5MB)
테스트 12 통과 (0.55ms, 79.1MB)
테스트 13 통과 (1.38ms, 67.5MB)
테스트 14 통과 (0.91ms, 81MB)
테스트 15 통과 (0.92ms, 73.5MB)
테스트 16 통과 (6.12ms, 85.5MB)
테스트 17 통과 (4.86ms, 85.8MB)
테스트 18 통과 (4.50ms, 72MB)
테스트 19 통과 (3.69ms, 79.6MB)
테스트 20 통과 (2.90ms, 81MB)

 

 

 

 

 

해시맵으로 폰켓몬 종류가 몇 종류인지 파악하고

종류 수와 nums / 2 중에서 작은 숫자를 리턴하면 되는데, Math.min( )으로 처리하려고 보니까 시간이 조금 더 길어지길래 그냥 삼항연산자로 처리함

 

 

 

 

 

728x90