[BOJ]백준 1475번:방번호(JAVA)

ho's·2022년 4월 11일
0
post-custom-banner

문제링크: https://www.acmicpc.net/problem/1475

문제

다솜이는 은진이의 옆집에 이사왔다. 다솜이의 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다. 옆집에 플라스틱 상자를 파는데, 한 세트에 0~9까지의 숫자가 들어 있다. 다솜이의 방 번호가 주어졌을때, 필요한 세트의 개수의 값의 최솟값을 출력하라. (단, 9와 6은 뒤집어서 사용가능하다)

풀이

위의 문제 상황처럼, 다솜이의 방번호가 주어지면, 방번호를 만들기 위해 숫자세트를 몇개 구매해야하는지 최솟값을 출력하는 문제이다.
단 숫자세트 한 세트에서 [6]과 [9]는 같은 값이므로 한셋트에 2개가 포함이 된다는 점을 유의하자.

소스코드

package baekjoon.solution;
import java.util.Scanner;

public class Baekjoon_1475 {
    public static void main(String[] args) {

        Scanner scan = new Scanner(System.in);
        int inputNum = scan.nextInt();
        int a = inputNum;
        int[] platsticNumber = new int[10];
        int cnt = 1;
        int tmp = 0;

        while (a / 10 != 0) {
            a = a / 10;
            cnt++;
        }

        for (int i = 0; i < cnt; i++) {
            tmp = inputNum % 10;
            inputNum = inputNum / 10;
            if (tmp == 6)
                platsticNumber[9]++;
            else
                platsticNumber[tmp]++;
        }

        int max = 0;
        if(platsticNumber[9]%2==0)
            platsticNumber[9] = platsticNumber[9]/2;
        else
            platsticNumber[9] = (platsticNumber[9]/2)+1;
        
        for(int i=0;i<10;i++) {
            max = Math.max(max, platsticNumber[i]);
        }
        System.out.println(max);
    }
}

위와 같은 방법으로 풀었지만, 내가 봐도 좋은 코드는 아닌 것 같다.
일단 문제를 푼것에 의미를 두자

profile
그래야만 한다
post-custom-banner

0개의 댓글