1) SW Expert Academy 정책상 문제 자체를 퍼가는 것은 금지되며 링크와 출처로 명시해 주시기 바랍니다.
2) 문제에 대한 본인의 풀이에 대해서는 개인 학습 등 상업적 용도가 아닌 경우에만 문제 출처와 함께 게시가 가능합니다.
※ 저작권 이슈가 있을 시 법적 제재를 받을 수 있으니 참고하여주시기 바랍니다.
문제 설명
나의 풀이
import java.util.Scanner;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int i = 1; i <= T; i++){
int P = sc.nextInt();
int Q = sc.nextInt();
int R = sc.nextInt();
int S = sc.nextInt();
int W = sc.nextInt();
int A = W*P;
int B;
if(W <= R){
B = Q;
}else {
B = Q + (W-R) * S;
}
if(A > B){
System.out.println("#"+i+" "+B);
}else {
System.out.println("#"+i+" "+A);
}
}
}
}
그냥 수학 문제 풀듯이 풀면 된다.
다른 풀이
import java.util.*;
import java.io.*;
class Solution
{
public static void main(String args[]) throws Exception
{
Scanner sc = new Scanner(System.in);
int P, Q, R, S, W, A, B;
int T = sc.nextInt();
for(int tc = 1; tc <= T; tc++)
{
/**
P : A의 L당 요금
Q : B의 R리터 이하 요금
R : B의 기준
S : B의 R리터 초과 요금
W : 종민의 한달 수도 양
**/
P = sc.nextInt();
Q = sc.nextInt();
R = sc.nextInt();
S = sc.nextInt();
W = sc.nextInt();
A = W * P;
B = Q + (W - R <= 0 ? 0 : W - R) * S;
System.out.printf("#%d %d\n",tc, A < B ? A : B);
}
}
}
사용할 변수들을 for문 밖으로 미리 빼놓은것과 삼항 연산자를 사용하여 코드의 가독성을 높인게 눈에띈다.
'👨💻 Coding Test' 카테고리의 다른 글
[SW Expert Academy/Java/D3] 1208.Flatten (0) | 2024.11.06 |
---|---|
[SW Expert Academy/Java/D3] 1206.View (0) | 2024.11.04 |
[SW Expert Academy/Java/D1] 1936.1대1 가위바위보 (0) | 2024.10.31 |
[SW Expert Academy/Java/D3] 5642.합 (0) | 2024.10.25 |
[SW Expert Academy/Java/D2] 1204.최빈수 구하기 (0) | 2024.10.25 |