본문 바로가기

JAVA-BAEKJOON/2단계 조건문

[백준/02-07] 2480 주사위 세 개

NO.2480

풀이코드

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int n1 = sc.nextInt();
		int n2 = sc.nextInt();
		int n3 = sc.nextInt();
		
		sc.close();
		
		// 모두 다른 눈이 나오는 경우
		if(n1!=n2 && n2!=n3 && n3!=n1) {
			int max;
			// max 설정하기
			// 1. n1>n2  =>  n1>n2, n3  or n3>n1>n2 
			if(n1>n2) {
				if(n3>n1) {
					max = n3;
				}else {
					max = n1;
				}
			}
			// 2. n2>n1  => n2>n1, n3 or n3>n2>n1
			else {
				if(n3>n2) {
					max = n3;
				} else {
					max = n2;
				}
			}
			System.out.println(max*100);
		} 
		// 같은 눈이 2개 이상 나오는 경우
		else {
			// 3개 모두 같은 경우
			if(n1==n2 && n1==n3) {
				System.out.println(10000+n1*1000);
			}
			// 2개만 같은 경우 => n1&n2 or n2&n3 or n1&n3
			else {	
				if(n1==n2 || n2==n3) {	// n1&n2 or n2&n3
					System.out.println(1000+n2*100);
				}
				else {	// n1&n3
					System.out.println(1000+n1*100);
				}
			}
		}
	}
}

 

📌 머릿속으로만 생각하면서 풀지말고, 주석으로 해결해나갈 방향을 잡고 풀면 더 쉽게 풀린다.

      세 개 모두 다른 눈이 나오는 경우는 최대값도 구해야해서 제일 번거롭기때문에 가장 앞으로 빼서

      먼저 풀었다.

      최대값하니까 생각났는데, Math 함수로도 max 구할 수 있잖아..?

      좀 더 간결하게 코드 짜볼 겸 다시 풀어보자.

 

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int n1 = sc.nextInt();
		int n2 = sc.nextInt();
		int n3 = sc.nextInt();
		
		sc.close();
		
		if(n1!=n2 && n1!=n3 && n2!=n3) {
			int max = Math.max(n1, Math.max(n2, n3));
			System.out.println(max * 100);
		} // 모두 같은 눈
		else if(n1==n2 && n1==n3 && n2==n3) {
			System.out.println(10000+n1*1000);
		} // 2개만 같은 눈
		else {	
			if(n1==n2 || n1==n3) {
				System.out.println(1000+n1*100);
			} else {	// n2 == n3
				System.out.println(1000+n2*100);
			}
		}
	}
}

📌 역시 간결한게 최고다👍  이걸로 백준 2단계 끝!