Posis

[프로그래머스][JavaScript] 폰켓몬 본문

알고리즘

[프로그래머스][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

'알고리즘' 카테고리의 다른 글

GitHub Algorithm Study  (0) 2021.07.30