https://school.programmers.co.kr/learn/courses/30/lessons/132267
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
#include <string>
#include <vector>
using namespace std;
int solution(int a, int b, int n) {
int answer = 0;
int m=0;
while(n+m>=a)
{
//1. 교환
m+=(n/a)*b;
answer+=(n/a)*b;
n=n%a;
//2. 마시기
n+=m;
m=0;
}
return answer;
}
이 문제는 빈병 a개를 가져다 주면 b개의 콜라병을 받을 수 있다고 했을 때, n개의 빈병을 가지고 최대 몇개의 콜라병을 받아낼수 있는가를 알아내는 문제이다. 받은 콜라병은 다시 마셔서 빈병으로 만들 수 있다.
반복문을 통해서 쉽게 구현할 수 있다. 조건은 빈병+ 콜라병 수의 합이 교환 가능한 개수 즉 a개를 넘지 못하면 반복문을 종료한다.
반복문은 1. 교환 2. 마셔서 빈병으로 만들기를 반복한다.
그리고 콜라병으로 교환받을 때마다 answer에 저장하면 된다.
'알고리즘 > 프로그래머스 1단계' 카테고리의 다른 글
프로그래머스 - 추억 점수 - C++ (0) | 2024.07.17 |
---|---|
프로그래머스 - 명예의 전당(1) - C++ (1) | 2024.07.17 |
프로그래머스 - 비밀지도 - C++ (0) | 2024.07.16 |
프로그래머스 - 문자열 내 마음대로 정렬하기 - C++ (1) | 2024.07.16 |
프로그래머스 - 푸드 파이트 대회 - C++ (0) | 2024.07.16 |