프로그래머스 LEVEL 2(귤 고르기)
-
사용 언어 : javascript
-
해결 날짜 : 2022-11-26
- 해결 방법 :
- tangerine를 돌며 종류 별 개수를 map에 저장
- map에서 필요한 개수만 추출 후 내림차순 정렬(numbers)
- 정렬된 numbers 배열을 돌며 현재(temp) k보다 적게 포장한 경우
- 개수(answer) 1 증가
- temp를 현재 크기의 귤의 개수만큼 더함
- 회고 :
- map에서 저장된 {크기: 개수} 쌍에서 추출할 때 필요한 값만 추출하기(개수)
-
코드
function solution(k, tangerine) { let temp = 0; let answer = 0; const map = new Map(); for (let i = 0; i < tangerine.length; i++) { const current = tangerine[i]; if (map.has(current)) { map.set(current, map.get(current) + 1); } else { map.set(current, 1); } } const numbers = [...map].map((val) => val[1]).sort((a, b) => b - a); for (const number of numbers) { if (temp < k) { answer += 1; temp += number; } else break; } return answer; }
- 출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges