[프로그래머스] 폰켓몬 - Javascript

BoongDev·2021년 5월 11일
0

알고리즘

목록 보기
2/4

📘 문제
https://programmers.co.kr/learn/courses/30/lessons/1845

프로그래머스 코딩테스트 연습 문제 level 1 의 문제이다. N마리 폰켓몬의 종류 번호가 담긴 배열이 주어졌을 때 2/N 마리를 선택하여 가장 많은 종류의 포켓몬을 선택하는 방법을 찾아 리턴 하면 된다.

저는 문제를 읽고 다음과 같이 생각을 하였습니다.

첫째, 길이가 0일 때 (빈 배열이 올 때) 리턴값 또한 0이다.
둘째, 종류가 다른 폰켓몬이 배열의 원소 값만큼 많아도 2/N 을 넘지 못한다

위 두가지 사항을 봤을 때 간단히 해결이 가능했습니다.
다음은 저의 코드입니다.

if(nums.length === 0) return answer;

길이가 0일 때 (비어있는 배열이 주어졌을 때) 0을 리턴하고

nums 배열을 오름차순으로 정렬한 뒤 차례대로 종류가 다른 폰켓몬이 나올 때마다 stackpush하여 줍니다. 그럼 nums로 주어진 폰켓몬의 종류를 구할 수 있습니다.

제약중 2/N마리 즉 nums.length/2를 넘겨서 폰켓몬을 선택할 수 없으므로 조건문을 걸어 결과값을 return 해줍니다.

비교적 간단한 문제였습니다.
다른 분들의 풀이를 보았는데 이게...Javascript다 보니 너무나도 다양한 풀이가 나와서 양이 많더라구요...;;;

그에 반해 Python은 대체적으로 풀이가 비슷합니다. 역시 주목받는 코딩테스트 언어는 다르더군요.

프로그래머스 연습문제 level 1 은 정렬과 배열의 활용에 중점을 둔 듯 싶습니다.

profile
욕심 많은 주니어 개발자입니다.

0개의 댓글