마이의 개발 블로그

[프로그래머스] 폰켓몬 (Java) 본문

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

[프로그래머스] 폰켓몬 (Java)

개발자마이 2022. 3. 5. 01:53
반응형

 

 

 

코딩테스트 연습 - 폰켓몬

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

programmers.co.kr

 

작성 코드

  1. 정렬 (Arrays.sort())

  2. 한 바퀴 돌면서 중복 안 되는 폰켓몬 번호의 최대값(count)이 몇 개인지 찾는다 (for문).

  3. 선택가능한 최대개수 n과 count를 비교하여 그 중 큰 값을 정답으로 반환한다.

 

import java.util.*;

class Solution {
    public int solution(int[] nums) {
        
        int answer = 0;
        
        Arrays.sort(nums);
        
        int count = 0;
        int num = -1;
        
        for(int i=0; i<nums.length; i++){
            
            if(num != nums[i])
                count++;
            
            num = nums[i];
        }
        
        int n = nums.length/2;
        
        if(count >= n)
            answer = n;
        else
            answer = count;
        
        return answer;
    }
}

 

Note

- 처음에 문제를 언뜻보고서는 글이 너무 많아 계속 넘기고 넘겼는데 읽어보니 너무나 간단한 문제였다. 앞으로는 풀기 어려워보여도 좀 더 자세히 들여다봐야겠다.

- 해시로 푸는 방법도 있기는 하나 직접 적용해보니 테스트케이스 응답시간에 별반 차이가 없는 듯하다.

반응형
Comments