[프로그래머스] Lv1 콜라 문제 JavaScript

seunghwan·2022년 11월 3일
2

알고리즘

목록 보기
2/5
post-thumbnail

문제 설명


코드

const solution = (a, b, n) => {
    let answer = 0;
    let remain = n;

    while (true) {
        if (a > remain) {
            break;
        }
        answer += parseInt(remain/a)*b;
        remain = parseInt(remain/a)*b + remain%a
    }

    return answer;
}

풀이

처음에 요구하는 빈 병의 수대로 나누어떨어질 경우와 아닌 경우를
분기 처리했었는데, 생각해 보니 그럴 필요가 없을 것 같았다
어차피 나누어떨어지면 나머지가 0일 테니까...😅
괜히 어렵게 생각하지 말자!

a : 요구하는 빈 병 수
b : a 개 받으면 주는 병 수
n : 자본금

n 개를 a로 나누고 그 몫에 주는 병수 b를 곱한 만큼 answer에 더해준다
남은 병 수는 받은 병수에 나눠떨어지지 않은 나머지를 더한 만큼 남아있게 된다
이 과정을 반복해서, 요구하는 병 수 a보다 남은 병 수가 더 적어지면 종료!

parseInt : 정수형으로 변환하는 메서드 (몫 구하기)


결과

1트만에 성공(●'◡'●)


profile
소소한 개발일지💻

0개의 댓글