728x90
반응형
이번 글은 다음 링크의 글을 토대로 작성하였습니다.
[프로그래머스] 예산 - JavaScript
2021-04-05
velog.io
[프로그래머스] level1. 예산 (javascript)
문제 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄
zzemal.tistory.com
[Programmers] 예산 / JavaScript
문제 https://programmers.co.kr/learn/courses/30/lessons/12982?language=javascript 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을..
king-goni.tistory.com
이번 문제에 대한 자세한 사항은 다음 링크를 참조하세요.
문제에 대한 접근 자체를 잘못했다. 예시를 보니 일정 숫자를 짝을 지어 budget과 맞아떨어지게 계산해야 하는 줄 알았는데 다른 사람들의 코드를 보니 그냥 주어진 예산이 될 때까지 더하거나 빼서 풀면 되는 간단한 문제였다.
budget보다 값이 커질 때까지 더하는 문제 혹은 작아질 때까지 빼는 문제를 기본으로 내장 함수를 활용한 해답 몇 개를 더 올리겠다.
Solutions
Solution 1.
function solution(d, budget) { /* Normal Ver. */ let answer = 0 let sum = 0; d.sort((a, b) => a - b); for (const num of d) { sum += num; if (sum > budget) break; answer++; } return answer; //////////////////////////////////// let answer = 0; d.sort((a, b) => a - b); for (const num of d) { if (num > budget) break; budget -= num; answer++; } return answer; }
Solution 2.
function solution(d, budget) { /* forEach Ver. */ let answer = 0; let sum = 0; d.sort((a, b) => a - b).forEach((val) => { sum += val; if (sum <= budget) { answer++; } }); return answer; }
Solution 3.
function solution(d, budget) { /* reduce Ver. */ d.sort((a, b) => a - b); while (d.reduce((acc, curr) => acc + curr, 0) > budget) d.pop(); return d.length; }
728x90
반응형
'👩💻 Programming > Coding Test 문제 풀이' 카테고리의 다른 글
[Programmers] level 1: 2016년 by JavaScript (0) | 2022.07.08 |
---|---|
[Programmers] level 1: 두 개 뽑아서 더하기 by JavaScript (0) | 2022.07.07 |
[Programmers] level 1: 3진법 뒤집기 by JavaScript (0) | 2022.07.07 |
[Programmers] level 1: 약수의 개수와 덧셈 by JavaScript (0) | 2022.07.06 |
[Programmers] level 1: 폰켓몬 by JavaScript (0) | 2022.07.06 |
댓글