본문 바로가기
알고리즘 스터디/[프로그래머스] 연습문제

[알고리즘] 부족한 금액 계산하기 문제풀이(자바스크립트 javascript)

by 제니운 2022. 7. 16.
728x90

 

(문제 해결)

1. 'x만큼 간격이 있는' 알고리즘 문제풀이와 방법을 비슷하게 사용할 수 있다. count를 나열해서 price와 곱하면 price만큼 증가하는 값을 표현할 수 있다.

2. 이 값에서 money를 빼면 된다.

3. 이 값이 0보다 크면 0을 return하기

 

 

(해결 방법)

 

👌 먼저 count 갯수 설정, count 는 자연수니까 1부터 시작

for(let i = 1; i <= count; i++) //이렇게!

 

👌 총 값을 total이라고 설정해주자, 그럼 위에 변수도 지정해주어야 한다

var answer = 0; //원래 -1로 되어 있는데 answer값은 더하거나 마이너스 해야하므로 0부터 시작

let total =0; // total 변수 설정 완료

 

for(let i = 1; i <= count; i++){

     total += price *i;

}

 

✅ 나열한 것 더해!! 라는 + 함수는 반드시 = 에 바로 붙여써야 한다. 계속 오류가 나서 뭔지 몰랐는데 += 를 띄어서 쓰고 있었다.

✅ price * i 값은 보면 i가 1부터 시작하니까 price를 3이라고 가정하면 3,6,9,12~~~ 처럼 값을 가져올 수 있고 이 값들을 더하라고 함수를 지정해준 것

 

👌 이제 답을 도출하면 되니까 total 값에서 money를 빼주면 부족한 값을 answer 로 받아낼 수 있다.

 

answer = (total - money); // ;를 써주고 싶은데 -가 걸려있어서 () 설정해주었다.

 

👌(문제설명)에 단, 금액이 부족하지 않으면 0을 return 하라고 되어 있다.

 

return answer > 0 ? answer : 0;

 

✅ return 할 때, if 문처럼 해석할 수 있는 것을 처음 배웠다. 

return answer > 0 ? // return 할건데 answer가 0보다 크면 

answer : 0 ; // answer는 0이라고 해줘, if 쓸 때처럼 해석하면 무리없이 해석 완료

 

 

✅ 최종 코드

 

function solution(price, money, count) {
    var answer = 0;
    let total = 0;
    
    for(let i = 1; i <= count; i++){
        total += price*i;
    }
    answer = (total - money);
    return answer > 0 ? answer : 0;
}
728x90