알고리즘/BOJ (JAVA)

(JAVA) 백준 1475번 : 방 번호

띵킹 2022. 2. 10. 18:05

https://www.acmicpc.net/problem/1475

 

1475번: 방 번호

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

www.acmicpc.net

문제

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

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

입력

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

출력

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


0~9까지의 숫자를 세고 최빈값의 빈도를 구하는 문제.

6과 9는 똑같이 사용할 수 있기 때문에 같이 세고 2로 나눠준다.

단 홀수인 경우 한세트 더 필요하기 때문에 +1 처리해줌.

import java.io.*;
import java.util.*;

public class B_1475 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int[] result = new int[9];
        String[] data = br.readLine().split("");
        for(String i : data) {
            if(i.equals("6")||i.equals("9")){
                result[6]++;
            }
            else {
                result[Integer.parseInt(i)]++;
            }
        }
        result[6] = result[6]%2 == 0 ? result[6]/2 : (result[6]/2)+1;
        Arrays.sort(result);
        bw.write(Integer.toString(result[8]));
        bw.flush();
        bw.close();
    }    
}

 

728x90