본문 바로가기
JAVA/Coding Test Study

[Bronze_IV] 백준 - 2480. 주사위 세개 : Java

by ♡˖GYURI˖♡ 2024. 2. 21.
728x90
 

2480번: 주사위 세개

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만

www.acmicpc.net

 

 

 

이해하기

  • 같은 눈이 3개가 나오면 10,000원 + (같은 눈) x 1,000원
    • a == b && a == c
  • 같은 눈이 2개만 나오는 경우에는 1,000원 + (같은 눈) x 100원
    • a == b && a != c
    • a == c && a != b
    • b == c && b != a
  • 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈) x 100원
    • else 문 내 max 찾기

 

문제 풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        int[] num = new int[3];
        int idx = 0;
        for (String n : s.split(" ")) {
            num[idx++] = Integer.parseInt(n);
        }

        if (num[0] == num[1] && num[0] == num[2]) {
            System.out.println(10000 + num[0] * 1000);
        } else if (num[0] == num[1] && num[0] != num[2] || num[0] == num[2] && num[0] != num[1]) {
            System.out.println(1000 + num[0] * 100);
        } else if (num[1] == num[2] && num[0] != num[1]) {
            System.out.println(1000 + num[1] * 100);
        } else {
            int max = num[0];
            for (int i = 1; i < num.length; i++) {
                if (max < num[i]) {
                    max = num[i];
                }
            }
            System.out.println(max * 100);
        }
    }
}

 

BufferedReader가 훨씬 빨라서 잘 써보고 싶은데, 이렇게 " "을 두고 들어오는 int형들은 배열로 받을 수 밖에 없는걸까?

각각 int a, b, c로 받을 수 있으면 좀 더 편하게 작성할 수 있을 것 같은데... 고민해보아야겠다.