본문 바로가기
백준 문제 풀이/조건문

(#2480 Java) 주사위 세 개

by _비니_ 2023. 7. 26.
문제

 

알고리즘

경우의 수를 여러가지로 나누어야 할 것 같다.

 

<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