[백준/JAVA] 2476번 주사위 게임

정은아·2024년 5월 2일

[알고리즘] 수학 모음

목록 보기
73/152
post-thumbnail

문제

내 풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Collections;
import java.util.StringTokenizer;

public class Main extends Exception {
    public static void main(String[] args) throws IOException {
        // 같은 숫자 3개 : 10,000원 + (숫자) * 1,000
        // 같은 숫자 2개 : 1,000 + (숫자) * 100
        // 다 다른 눈 : 그 중 가장 큰 수 * 100

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int num = Integer.parseInt(br.readLine());
        // 주사위를 3번 돌린다고 했으니 해당 배열을 3크기만큼 만든다.
        Integer[] dice = new Integer[3];
        // 상금을 비교할 변수 2개를 만든다.
        int max = 0;
        int answer = Integer.MIN_VALUE;

        for (int i = 0; i < num; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            // max를 다시 초기화해준다.
            max = 0;

            // dice[]를 입력받는다.
            for (int j = 0; j < 3; j++) {
                dice[j] = Integer.parseInt(st.nextToken());
            }
            // 조건문에 따라 3개 맞을 때, 2개 맞을 때, 각각 다를 때 상금을 나눈다.
            if (dice[0] == dice[1] && dice[1] == dice[2]) {
                max = 10000 + (dice[0] * 1000);
            } else if ((dice[0] == dice[1] && dice[1] != dice[2])) {
                max = 1000 + (dice[0] * 100);
            } else if (dice[0] == dice[2] && dice[0] != dice[1]) {
                max = 1000 + (dice[0] * 100);
            } else if (dice[1] == dice[2] && dice[1] != dice[0]) {
                max = 1000 + (dice[1] * 100);
            } else {
                // 3개의 주사위가 다 다르게 나올 때에는 정렬한 뒤, 0번째 값으로 구한다.
                Arrays.sort(dice, Collections.reverseOrder());
                max = dice[0] * 100;
            }

            // max와 anwer를 비교해서 더 높은 값을 answer에 넣어준다.
            answer = Math.max(max, answer);
        }

        sb.append(answer);
        System.out.println(sb.toString());
    }
}

느낀점

profile
꾸준함의 가치를 믿는 개발자

0개의 댓글