알고리즘
[프로그래머스][JavaScript] 폰켓몬
CooNiHong
2021. 7. 30. 14:54
[프로그래머스][JavaScript] 폰켓몬
문제 출처: https://programmers.co.kr/learn/courses/30/lessons/1845
코딩테스트 연습 - 폰켓몬
당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다.
programmers.co.kr
[직접 푼 코드]
function solution(nums) {
const arr = new Set(nums);
if (nums.length / 2 > arr.size) {
return arr.size;
} else {
return nums.length / 2;
}
}
[문제 풀이]
1. Set 객체를 활용해서 Input의 중복을 없애줍니다.
입출력 1을 보시면 [3, 1, 2, 3]입니다. 중복을 없애면 총 3마리의 폰켓몬이 나옵니다. 하지만 홍 박사님은 총 N마리 중에 절반만 가져갈 수 있도록 허락했습니다. 총 4마리의 절반은 2마리, 중복을 없애면 3마리가 나옵니다.
2. N/2 > 중복x 마릿수 - true일 경우 최대 고를 수 있는 폰켓몬 수를 반환하고 false일 경우 N/2 수를 반환하면 됩니다.
[정리하며 생각난 점]
글을 정리하면서 조건절을 nums.length / 2 >= arr.size로 변경해도 통과할 수 있다는 것을 알게 되었습니다.
요번 문제는 유난히 설명을 더 못한 거 같네요. 알아보기 쉽게 작성할 수 있도록 정진하겠습니다!!
728x90