Deff_Dev

[프로그래머스] 콜라 문제 (C++) 본문

코딩테스트/프로그래머스

[프로그래머스] 콜라 문제 (C++)

Deff_a 2024. 3. 18. 17:35
 

프로그래머스

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

programmers.co.kr

문제

이 문제는 빈 병 a개를 가져다주면 콜라 b병을 주는 마트가 있을 때, 빈 병 n개를 가져다주면 몇 병을 받을 수 있는지 계산하는 문제이다

 

빈 콜라 갯수, 마트에서 받은 콜라 갯수를 저장하는 int형 변수를 선언하고

더이상 마트에 가져다줄 빈 콜라 병이 없을 때까지 반복해 마트에서 받은 콜라의 총 갯수를 구했다.

풀이

#include <string>
#include <vector>
// https://school.programmers.co.kr/learn/courses/30/lessons/132267#
using namespace std;

int solution(int a, int b, int n) {
    int answer = 0, coke = 0 , emptyCoke= 0;
    
    while(true){
        emptyCoke = n;  // 빈 콜라 병 갯수 저장      
        coke = (emptyCoke / a) * b; // 마트에서 받은 콜라 갯수
        answer += coke; // 받은 콜라 ++
        emptyCoke %= a; // 마트에 전달하지 않은 빈 콜라 병 갯수
        
        n = emptyCoke + coke; // 현재 가지고 있는 콜라 갯수
               
        if(n / a == 0) {break; } // 더 이상 마트에 전달할 콜라가 없다면 break;
    }
    return answer;
}