devlog_owen
[프로그래머스] 예산 본문
728x90
문제
1.배열 d를 오름차순으로 정렬한 다음
2.하나씩 더하면서 budget이랑 비교
나의 풀이
function solution(d, budget) {
var answer = 0;
let newD = d.sort((a, b) => a - b);
let currentSum = 0;
for (let i = 0; i < newD.length; i++){
currentSum += newD[i]
if( currentSum <= budget){
answer ++
}else{
break;
}
}
return answer;
}
1. 신청한 상품목록인 newD를 오름차순으로 정리하고 현재까지 선택한 상품 가격을 누적한 currentSum을 0으로 초기화.
let newD = d.sort((a, b) => a - b);
let currentSum = 0;
2. for문을 돌면서 현재 선택한 물품( newD[i])의 가격을 currentSum 에 누적시키고, currentSum이 budget을 넘으면 break문으로 멈추게 함.
for (let i = 0; i < newD.length; i++){
currentSum += newD[i]
if( currentSum <= budget){
answer ++
}else{
break;}
다른 사람 풀이
function solution(d, budget) {
let answer = 0;
let newD = d.sort((a, b) => a - b);
let currentSum = 0;
let i = 0;
while (i < newD.length && currentSum + newD[i] <= budget) {
currentSum += newD[i];
answer++;
i++;
}
return answer;
}
내가 쓰고싶었던 while문. 나는 생각해보니 저 연산자 &&을 활용을 못하는거같다.
회고
처음에 오름차순 정렬하는 것 까지는 수월했는데, 반복문을 처음에 while로 해서 코드를 만들었다.
근데 조건 설정하는게 나한테는 어려웠다;; 그래서 원래 비교적 많이 써본 for 문으로 코드를 결국 완성했다.
중간에 변수명 오타랑 if문을 for 문 안에 안넣어서 오류가 났는데 주의해야겠다.
728x90
'algorithm > (js)프로그래머스' 카테고리의 다른 글
[프로그래머스] 삼총사 (0) | 2023.11.05 |
---|---|
[프로그래머스] 3진법 뒤집기 (0) | 2023.11.05 |
[프로그래머스] 같은 숫자는 싫어요 (0) | 2023.11.02 |
[프로그래머스] 최대공약수와 최소공배수 (1) | 2023.11.02 |
[프로그래머스] 행렬의 덧셈 (1) | 2023.11.01 |