https://www.acmicpc.net/problem/5032
5032번: 탄산 음료
첫째 줄에 준민이가 가지고 있는 빈 병의 수 e, 그날 발견한 빈 병의 수 f, 새 병으로 바꾸는데 필요한 빈 병의 개수 c가 주어진다. (e < 1000, f < 1000, 1 < c < 2000) e, f, c는 모두 음이 아닌 정수이다.
www.acmicpc.net
c++로 백준 5032번 문제를 풀어보겠다.
문제
준민이는 탄산 음료를 좋아한다. 탄산 음료를 사느라 돈을 다 써버렸기 때문에, 이제 준민이는 가진 돈이 없어 탄산 음료를 사먹을 수 없다.
준민이는 항상 법을 지키며 사는 사람이기 때문에, 아무리 탄산 음료가 먹고 싶어도 훔치지 않는다. 따라서, 법적으로 문제가 없는 방법으로 탄산 음료를 구매할 것이다.
마침 빈 병을 특정 개수만큼 가져가면, 새 병으로 바꾸어주는 이벤트가 진행중이다. 준민이는 길에서 빈 병을 열심히 찾은 뒤, 탄산 음료를 먹으려고 한다.
준민이가 현재 가지고 있는 빈 병의 수와 길에서 발견한 빈 병의 수, 새 병으로 바꾸는데 필요한 빈 병의 수가 주어졌을 때, 준민이가 탄산 음료를 몇 개 먹을 수 있는지 구하는 프로그램을 작성하시오.
입력
첫째 줄에 준민이가 가지고 있는 빈 병의 수 e, 그날 발견한 빈 병의 수 f, 새 병으로 바꾸는데 필요한 빈 병의 개수 c가 주어진다. (e < 1000, f < 1000, 1 < c < 2000) e, f, c는 모두 음이 아닌 정수이다.
출력
첫째 줄에 준민이가 탄산 음료를 몇 개나 먹을 수 있는지를 출력한다.
예제 입력 1 복사
9 0 3
예제 출력 1 복사
4
<문제 풀이>
1. e, f, c 값을 선언한 후 입력받는다.
2. e와 f를 더해 sum 값을 계산한다.
3. while 반복문을 통해 더이상 계산이 안될 때까지 바꿀 수 있는 병의 개수를 계산한다.
(sum을 c로 나눈 몫을 바꿀 수 있는 병의 개수로 계산하고, 나눈 나머지 값을 다시 sum에 저장한다.)
(바꾼 병의 개수도 다시 비워 빈 병으로 만들 수 있으므로 바꾼 병의 개수도 sum 값에 더해준다.)
(만약 sum이 0이거나 sum이 c보다 작아 더이상 다른 병으로 바꿀 수 없다면 반복문을 종료한다.)
4. 계산한 병의 개수를 출력한다.
코드는 다음과 같다.
'C++' 카테고리의 다른 글
[백준 알고리즘] 2981번 : 검문, c++ (0) | 2022.02.23 |
---|---|
[백준 알고리즘] 4344번 : 평균은 넘겠지, c++ (0) | 2022.02.22 |
[백준 알고리즘] 21921번 : 블로그, c++ (0) | 2022.02.21 |
[백준 알고리즘] 2490번 : 윷놀이, c++ (0) | 2022.02.21 |
[백준 알고리즘] 10866번 : 덱, c++ (0) | 2022.02.21 |