본문 바로가기

Backend/JAVA

[Algorithm] 데일리 백준

반응형
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;

public class Main {
  public static void main(String[] args) throws Exception{

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringBuilder sb = new StringBuilder();
    
    String[] numbers = br.readLine().split(" ");

    // 동작안함
//    int[] dice = new int[numbers.length];
//    for (int i = 0 ; i > numbers.length ; i++) {
//      dice[i] = Integer.parseInt(numbers[i]);
//      System.out.println(dice[i]);
//    }
    int[] dice = Arrays.stream(numbers).mapToInt(Integer::parseInt).toArray();

    for(int i = 0 ; i < dice.length - 1 ; i++){
      for(int j = 0 ; j < dice.length - i - 1 ; j++){
        if (dice[j] > dice[j + 1]){
          int temp = dice[j];
          dice[j] = dice[j + 1];
          dice[j + 1] = temp;
        }
      }
    }

    int price = 0;

    if(dice[0] == dice[1] && dice[0] == dice[2]) {
      price = 10000 + (dice[0] * 1000);
    } else if (dice[0] == dice[1] || dice[1] == dice[2]){
      price = 1000 + (dice[1] * 100);
    } else {
      price = dice[2] * 100;
    }

    System.out.println(price);
  }
}

 

더보기

주사위 개수 동적일 때

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) throws Exception {

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

        int n = Integer.parseInt(br.readLine()); // 주사위의 개수 입력
        int[] dice = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray();

        // 버블 정렬을 사용하여 배열 정렬
        for (int i = 0; i < dice.length - 1; i++) {
            for (int j = 0; j < dice.length - i - 1; j++) {
                if (dice[j] > dice[j + 1]) {
                    int temp = dice[j];
                    dice[j] = dice[j + 1];
                    dice[j + 1] = temp;
                }
            }
        }

        // 주사위 눈금의 빈도 계산
        int maxCount = 1;
        int currentCount = 1;
        int numberForMaxCount = dice[0];
        for (int i = 1; i < n; i++) {
            if (dice[i] == dice[i - 1]) {
                currentCount++;
            } else {
                currentCount = 1;
            }

            if (currentCount > maxCount) {
                maxCount = currentCount;
                numberForMaxCount = dice[i];
            }
        }

        // 결과 계산
        int price = 0;
        if (maxCount == n) { // 전부 동일한 주사위 눈
            price = 10000 + (numberForMaxCount * 1000);
        } else if (maxCount >= 2) { // 최대 중복인 주사위 눈(만약 2 2 2 3 3 3 5 5 5라면 5가 됨)
            price = 1000 + (numberForMaxCount * 100);
        } else {
            price = dice[n - 1] * 100; // 배열이 정렬되었기 때문에 마지막 요소가 가장 큰 값
        }

        System.out.println(price);
    }
}

 

반응형

'Backend > JAVA' 카테고리의 다른 글

[Algorithm] 데일리 백준  (0) 2024.04.12
[Algorithm] 데일리 백준  (0) 2024.04.09
[Algorithm] 데일리 백준  (0) 2024.04.04
[Algorithm] 데일리 백준  (0) 2024.04.03
[Algorithm] 데일리 백준  (2) 2024.04.02