https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV189xUaI8UCFAZN
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
www.swexpertacademy.com
이 문제는 Code Attack 문제이다. 다른 사람이 내 코드를 보고 input값을 넣어서 오류를 일으키면 공격에 성공한다.
그 말은 내 코드에 잘못된 부분이 있다는 뜻이므로 아직까지는 정확한 정답이 아닐 수도 있다...
풀이
- 먼저 입력을 모두 받고 A사를 선택한 경우와 B사를 선택한 경우의 수도요금을 각각 계산해준다.
- A사는 간단히 리터당 요금 P와 사용한 양 W를 곱해준 값이다.
- B사는 내가 사용한 양 W가 R보다 작거나 같을 경우에는 기본 요금기본요금 Q이고, 그렇지 않을 경우에는 기본요금 Q + 추가로 사용한 양(W-R) * 추가 요금 S이다.
- A사와 B사의 계산한 요금 중 더 작은 값을 출력한다.
import java.io.*; import java.util.StringTokenizer; public class Solution { static int P,Q,R,S,W; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); for(int tc=1; tc<=T; tc++) { StringTokenizer st = new StringTokenizer(br.readLine()); P = Integer.parseInt(st.nextToken()); Q = Integer.parseInt(st.nextToken()); R = Integer.parseInt(st.nextToken()); S = Integer.parseInt(st.nextToken()); W = Integer.parseInt(st.nextToken()); int chargeA = W*P; //A사의 수도요금 int chargeB; //B사의 수도요금 계산 if(W <= R) { chargeB = Q; // 기본요금 } else { int extra = W-R; chargeB = Q + extra*S; } if(chargeA > chargeB) { System.out.println("#"+tc+" "+chargeB); } else { System.out.println("#"+tc+" "+chargeA); } } } }
'SWEA > D2' 카테고리의 다른 글
[SWEA] 1204. [S/W 문제해결 기본] 1일차 - 최빈수 구하기 (0) | 2019.05.19 |
---|---|
[SWEA] 1288. 새로운 불면증 치료법 (0) | 2019.05.16 |
[SWEA] 1928. Base64 Decoder (0) | 2019.05.16 |
[SWEA] 1859. 백만 장자 프로젝트 (1) | 2019.05.16 |
[SWEA] 1940. 가랏! RC카! (0) | 2019.05.14 |