코딩테스트 문제해결 12

Seong Hyeon Kim·2022년 5월 18일
0

알고리즘

목록 보기
4/20

[기본코드]

function solution(price, money, count) {
    var answer = -1;

    return answer;
}

[내가 제출한 코드]

function solution(price, money, count) {
    var answer = 0;
    sumMoney = 0;
    
    for(let i=1; i<=count; i++){
        sumMoney += (price * i)
    }

    answer += sumMoney - money
    
   

    return answer;
}console.log(solution(3,20,4))
  • 우선 내가 가진 돈을 전부 더한 후[sumMoney] ( 수중에있는돈[money] - [sumMoney]) 을 for문을 사용해서 구한 후 그 값을 sumMoney 에 값을 할당해줬으며, Money 에서 sumMoney 를 뺀갓그 결과 값을 answer에 들어가게끔 코드를 작성하였습니다.


근데 분명히 코드 실행은 이상없었느데 결과값은 오류가 한개 있다고 나왔습니다.

[최종 풀이]

function solution(price, money, count) {
    var answer = 0;
    sumMoney = 0;
    
    for(let i=1; i<=count; i++){
        sumMoney += (price * i)
    }

    answer += sumMoney - money
    
   if(answer <= 0){						//// 추가된 내용
        return 0;
    }

    return answer;
}console.log(solution(3,20,4))
  • 풀면서도 생각했던 부분인데 음수가 나오면 양수로 바꿔야 되는 함수부분을 추가해야되지 않나? 라고 생각했던 부분이 결과중 오류의 한개로 나왔던 것 같습니다.
    즉, 애초부터 문제가 내가 부족한 돈을 구하는건데 돈이 부족하지 않았을때의 경우의 수에서 나올 답을 정해두지 않아서 발생한 문제라고 판단하였고,
    그래서 if문을 추가로 작성하여 코드를 수정하였습니다.

[다른 정답 코드]

function solution(price, money, count) {
    let answer = 0;

    for (let i = 1; i <= count; i++) {
        answer += price * i;
    }

    return answer > money ? answer - money : 0;
}

제가 if문으로 수정한 부분을 이분은 삼항연산자를 통해서 미리 조치한 내용인것 같아요

profile
삽질도 100번 하면 요령이 생긴다. 부족한 건 경험으로 채우는 백엔드 개발자

0개의 댓글