문제
10707번: 수도요금
JOI군이 살고 있는 지역에는 X사와 Y사, 두 개의 수도회사가 있다. 두 회사의 수도요금은 한 달간 수도의 사용량에 따라 다음과 같이 정해진다. X사 : 1리터당 A엔. Y사 : 기본요금은 B엔이고, 사용량
www.acmicpc.net
문제
JOI군이 살고 있는 지역에는 X사와 Y사, 두 개의 수도회사가 있다. 두 회사의 수도요금은 한 달간 수도의 사용량에 따라 다음과 같이 정해진다.
- X사 : 1리터당 A엔.
- Y사 : 기본요금은 B엔이고, 사용량이 C리터 이하라면 요금은 기본요금만 청구된다. 사용량이 C리터가 넘었을 경우 기본요금 B엔에 더해서 추가요금이 붙는다. 추가요금은 사용량이 C리터를 넘었을 경우 1리터를 넘었을 때마다 D엔이다.
JOI군의 집에서 한 달간 쓰는 수도의 양은 P리터이다.
수도요금이 최대한 싸게 되도록 수도회사를 고를 때, JOI군의 집의 1달간 수도요금을 구하여라.
입력
입력은 5줄이고 한 줄에 하나씩 정수가 입력된다.
- 첫 번째 줄에는 X사의 1리터당 요금 A가 입력된다.
- 두 번째 줄에는 Y사의 기본요금 B가 입력된다.
- 세 번째 줄에는 Y사의 요금이 기본요금이 되는 사용량의 상한 C가 입력된다.
- 네 번째 줄에는 Y사의 1리터 당 추가요금 D가 입력된다.
- 다섯 번째 줄에는 JOI군의 집에서 사용하는 한 달간 수도의 양 P가 입력된다.
입력되는 정수 A,B,C,D,P는 전부 1 이상 10000 이하이다.
출력
JOI군의 집에서 지불하는 한 달간 수도요금을 첫째 줄에 출력한다.
예제 입력 1 복사
9
100
20
3
10
예제 출력 1 복사
90
예제 입력 2 복사
8
300
100
10
250
예제 출력 2 복사
1800
힌트
입출력예제 1에서, JOI군의 집에서 사용하는 수도의 양은 10리터이다.
- X사의 수도요금은 9 × 10 = 90엔이다.
- JOI군의 집에서 사용한 양이 20리터 이하이므로 Y사의 수도요금은 기본요금인 100엔이다.
JOI군의 집은 수도요금이 더 싼 X사를 고르고, 이때의 한 달치 수도요금은 90엔이다.
입출력예제 2에서, JOI군의 집에서 사용하는 수도의 양은 250리터이다.
- X사의 수도요금은 8 × 250 = 2000엔이다.
- JOI군의 집에서 사용한 양이 100리터 이상이므로 초과량은 250 - 100 = 150리터이다. 따라서 Y사의 수도요금은 기본요금인 300엔에 더해서 10 × 150 = 1500엔의 추가요금이 붙고, 총 요금은 300 + 1500 = 1800엔이 된다.
JOI군의 집은 수도요금이 더 싼 Y사를 고르고, 이때의 한 달치 수도요금은 1800엔이다.
출처
![](https://blog.kakaocdn.net/dn/bMKvw7/btrpLsRwhZF/4cTrScEuoKm4jgV6H3KSfk/img.png)
Olympiad > Japanese Olympiad in Informatics > Japanese Olympiad in Informatics Qualification Round > JOI 2015 예선 1번
- 문제의 오타를 찾은 사람: eric00513
- 문제를 번역한 사람: pinebananais
#include<stdio.h>
int main(void) {
int A, B, C, D, P;
scanf("%d\n", &A);
scanf("%d\n", &B);
scanf("%d\n", &C);
scanf("%d\n", &D);
scanf("%d", &P);
A = A * P;
if(P > C){
P -= C;
B += P*D;
}
printf("%d", A<B?A:B);
}
두 회사중 수도 사용량 P에 따라 더 저렴한 회사를 선택할 때의 수도 요금을 계산합니다.
X 회사의 경우 기본 요금 없이 P사용량에 A만큼의 금액을 곱해줍니다.
Y사의 경우 C 만큼의 사용량을 넘기기 전까지는 기본 요금만 존재하며 기본 요금을 초과하서 사용할 경우 D만큼의 추가 요금을 추가로 지불해야 합니다.
따라서 기존 B 요금에 초과한 요금 P-C에 D를 곱한 값을 더해줍니다.
넘기지 않는 경우는 기본 요금인 B만 납부합니다.
이후 A와 B가 각각 X와 Y의 요금사용시 나오는 금액 이므로 더 적은 값을 선택해 출력하여 줍니다.
Git Hub
BaekJoon-Study/10707 : 수도요금.C at C · GUuu9/BaekJoon-Study (github.com)
GitHub - GUuu9/BaekJoon-Study
Contribute to GUuu9/BaekJoon-Study development by creating an account on GitHub.
github.com
'백준 코드 공부 > C언어' 카테고리의 다른 글
백준 1284 : 집 주소 (C언어) (0) | 2022.01.24 |
---|---|
백준 1475 : 방 번호 (C언어) (0) | 2022.01.12 |
백준 1032 : 명령 프롬프트 (C언어) (0) | 2022.01.02 |
백준 5532 : 방학숙제 (C언어) (0) | 2022.01.02 |
백준 1668 : 트로피 진열 (C언어) (0) | 2021.12.14 |