Lv.1 : 콜라 문제 [JavaScript]

2024. 8. 31. 16:00Algorithm/프로그래머스

반응형

https://school.programmers.co.kr/learn/courses/30/lessons/132267

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


문제 풀이

function solution(a, b, n) {
    var answer = 0;
    var has = n;
    
    while(has >= a){
        let add = Math.floor(has/a);
        answer += b * add;
        has = has + (b - a) * add;
    }
    
    return answer;
}

answer은 받을 수 있는 콜라의 병 수, has는 현재 가지고 있는 병의 수

가지고 있는 병의 수가 a개 미만이면 추가적으로 병을 받을 수 없기 때문에 while문 조건을 has >= a로 셋팅

병 a개를 주면 b개를 돌려받기 때문에 현재 가지고있는 병을 a개로 나누어 (=add)

add * b개만큼 받을 수 있는 콜라의 병 수에 추가하고

가지고 있는 병의 수는 현재 가진 병에서 돌려받는 병의 수만큼 더하고 가져다 준 병의 수만큼 뺀 값이다

 

 

반응형