문제
알고리즘
경우의 수를 여러가지로 나누어야 할 것 같다.
<3개의 주사위 수를 각각 a, b, c라고 했을 때>
- 3개의 수가 다 다른 경우 ( 3개의 수 중 최댓값을 찾아 x 100원을 해주어야 함 )
< 1개 이상이라도 같은 수가 있는 경우>
- 3개의 수가 다 같은 경우 ( 10,000원 + a × 1,000원 )
- a = b or a = c인 경우 ( 1,000원 + a × 100원 )
- b = c 인 경우 ( 1,000원 + b × 100원 )
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
int c = in.nextInt();
// 세 숫자가 다 다른 경우
if (a!=b && b!=c && c!=a) {
int max;
//a>b
if(a>b) {
if(c>a){
max = c;
} else {
max = a;
}
}
//a<b
else {
if(c>b){
max = c;
} else {
max = b;
}
}
System.out.println(max*100);
}
// 1개 이상이라도 같은 수가 있는 경우
else {
// 세 숫자가 다 같은 경우
if (a==b && b==c){
System.out.println(10000 + a * 1000);
} else{
//a==b or a==c
if(a == b || a == c) {
System.out.println(1000 + a * 100);
}
else { //b==c
System.out.println(1000 + b * 100);
}
}
}
}
}
알고리즘을 구체적으로 생각하고, 코드 작성을 해야함의 중요성을 다시 한 번 깨달았다!!!
경우의 수를 차분히 따지면 생각보다 너무 쉽게 풀리는 문제!
반응형
'백준 문제 풀이 > 조건문' 카테고리의 다른 글
(#2525 Java) 오븐 시계 (다시 풀어야 함) (0) | 2023.07.26 |
---|---|
(#2884 Java) 알람 시계 (0) | 2023.07.26 |