[프로그래머스] 부족한 금액 계산하기

Cielo·2023년 3월 8일
0

프로그래머스

목록 보기
3/3
post-thumbnail

코딩테스트 연습 > 위클리 챌린지 > 부족한 금액 계산하기
Lv.1 / 정답률 79%

❓ 문제 상황

놀이기구를 여러 번 탈 때, 매번 누적 이용 횟수의 배수만큼 이용료를 받는다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상된다.
놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액(money)에서 얼마나 모자라는지를 return하는 함수 작성. 금액이 부족하지 않으면 0을 return.

풀이 1

✅ 활용된 개념

  • for문

💻 코드

function solution(price, money, count) {
    let sum = 0;
    
    for (let i = 1; i <= count; i++) {
        sum += price * i;
    }
    
    return money < sum ? sum - money : 0;
}

설명

  • 시간복잡도 : O(n)

풀이 2

✅ 활용된 개념

  • reduce 함수
    Array.reduce(function(누산기, 배열요소, 인덱스, 원본배열) {}, 누산기 초기값);

💻 코드

function solution(price, money, count) {
    const cnt = [];
    
    for (let i = 1; i <= count; i++) {
        cnt.push(i);
    }
    
    const sum = cnt.reduce((acc, item, idx) => {
        return acc += item * price;
    }, 0);
    
    return money < sum ? sum - money : 0;
}

설명

  • 비효율적이지만, rudece 함수로 구현하고 싶어 시도함.
profile
풀스택 개발자를 꿈꾸는 프론트엔드 개발자 지망생💻

0개의 댓글