본문 바로가기

Algorithm/Baekjoon

(Java) [Baekjoon 1475 - 방 번호] - 2024. 3. 7.(목)

문제  

다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.

다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)

입력

첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 필요한 세트의 개수를 출력한다.


BOJ1475.java

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

public class BOJ1475 {
    public static void main(String[] args) {
        try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
            final String number = br.readLine();
            final int[] count = new int[9];
            for (int i = 0; i < number.length(); i++) {
                if (number.charAt(i) - '0' == 9) {
                    count[6]++;
                } else {
                    count[number.charAt(i) - '0']++;
                }
            }
            count[6] = (count[6] % 2 == 0) ? count[6] / 2 : count[6] / 2 + 1;

            int max = 0;

            for (int i : count) {
                max = Math.max(i, max);
            }

            System.out.println(max);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

출처 : Baekjoon online judge, https://www.acmicpc.net/problem/1475