반응형
츄르사려고 코딩하는 코집사입니다.
1. [백준 알고리즘] 백준 10707번 수도요금 자바(Java)
1) 문제번호 : 10707번
2) 문제 출처
2. 문제
JOI군이 살고 있는 지역에는 X사와 Y사, 두 개의 수도회사가 있다. 두 회사의 수도요금은 한 달간 수도의 사용량에 따라 다음과 같이 정해진다.
- X사 : 1리터당 A엔.
- Y사 : 기본요금은 B엔이고, 사용량이 C리터 이하라면 요금은 기본요금만 청구된다. 사용량이 C리터가 넘었을 경우 기본요금 B엔에 더해서 추가요금이 붙는다. 추가요금은 사용량이 C리터를 넘었을 경우 1리터를 넘었을 때마다 D엔이다.
JOI군의 집에서 한 달간 쓰는 수도의 양은 P리터이다.
수도요금이 최대한 싸게 되도록 수도회사를 고를 때, JOI군의 집의 1달간 수도요금을 구하여라.
3. 제약사항
-
4. 입력
입력은 5줄이고 한 줄에 하나씩 정수가 입력된다.
- 첫 번째 줄에는 X사의 1리터당 요금 A가 입력된다.
- 두 번째 줄에는 Y사의 기본요금 B가 입력된다.
- 세 번째 줄에는 Y사의 요금이 기본요금이 되는 사용량의 상한 C가 입력된다.
- 네 번째 줄에는 Y사의 1리터 당 추가요금 D가 입력된다.
- 다섯 번째 줄에는 JOI군의 집에서 사용하는 한 달간 수도의 양 P가 입력된다.
입력되는 정수 A,B,C,D,P는 전부 1 이상 10000 이하이다.
5. 출력
JOI군의 집에서 지불하는 한 달간 수도요금을 첫째 줄에 출력한다.
6. 풀이
- X사의 수도 요금은 사용한 만큼 요금을 내면 된다. 즉, P * A를 하면 된다.
- Y사의 수도 요금은 기준 사용량이하라면 요금은 기본요금만 내면 되는데, 사용량을 초과하면 기본요금 + (사용량 - 기준량) * 추가요금 D를 곱하면 된다.
- 그래서 더 적은 요금을 출력하면 된다.
7. 소스 코드
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int A = sc.nextInt(); //X사의 1리터당 요금 A
int B = sc.nextInt(); //Y사의 기본요금 B
int C = sc.nextInt(); //Y사의 요금이 기본요금이 되는 사용량의 상한 C
int D = sc.nextInt(); //Y사의 1리터 당 추가요금 D
int P = sc.nextInt(); //JOI군의 집에서 사용하는 한 달간 수도의 양 P
int X = P * A; //X사 요금
int Y = 0;
if(P<=C) Y = B;
else {
Y = B + (P-C) * D;
}
if(X>Y) System.out.println(Y);
else System.out.println(X);
}
}
반응형
'알고리즘 > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘] 백준 1149번 RGB거리 자바(Java) (0) | 2021.03.24 |
---|---|
[백준 알고리즘] 백준 1463번 1로 만들기 자바(Java) (0) | 2021.03.23 |
[백준 알고리즘] 백준 10870번 피보나치 수5 자바(Java) (0) | 2021.03.23 |
[백준 알고리즘] 백준 20944번 팰린드롬 척화비 자바(Java) (0) | 2021.03.23 |
[백준 알고리즘] 백준 15727번 조별과제를 하려는데 조장이 사라졌다 자바(Java) (0) | 2021.03.20 |
[백준 알고리즘] 백준 11283번 한글2 자바(Java) (0) | 2021.03.20 |
[백준 알고리즘] 백준 15894번 수학은 체육과목 입니다 자바(Java) (0) | 2021.03.20 |
[백준 알고리즘] 백준 1010번 다리 놓기 자바(Java) (0) | 2021.03.20 |
최근댓글