코딩테스트/프로그래머스
[프로그래머스] 폰켓몬 (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
- 처음에 문제를 언뜻보고서는 글이 너무 많아 계속 넘기고 넘겼는데 읽어보니 너무나 간단한 문제였다. 앞으로는 풀기 어려워보여도 좀 더 자세히 들여다봐야겠다.
- 해시로 푸는 방법도 있기는 하나 직접 적용해보니 테스트케이스 응답시간에 별반 차이가 없는 듯하다.
반응형