백준 방 번호

KIMYEONGJUN·2025년 2월 16일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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

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

내가 이 문제를 보고 생각해본 부분

입력 처리: BufferedReader를 사용하여 방 번호를 입력받는다.
숫자 카운트: count 배열을 사용하여 각 숫자의 개수를 세어 저장한다.
6과 9 처리: 6과 9는 서로 대체 가능하므로, 두 숫자의 개수를 합쳐서 필요한 세트를 계산한다.
최대 세트 계산: 나머지 숫자들 중 가장 많이 필요한 숫자의 개수와 6과 9를 조합한 값을 비교하여 최대값을 구한다.
결과 출력: StringBuilder를 사용하여 결과를 출력한다.

코드로 구현

package baekjoon.baekjoon_26;

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

// 백준 1475번 문제
public class Main934 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String N = br.readLine();

        // 숫자별로 필요한 개수를 세기 위한 배열
        int[] count = new int[10];

        // 숫자 개수 세기
        for(char c : N.toCharArray()) {
            count[c - '0']++;
        }

        // 6과 9는 서로 대체 가능하므로 합쳐서 처리
        int sixAndNine = (count[6] + count[9] + 1) / 2;

        // 필요한 세트의 최대값
        int maxSets = sixAndNine;
        for(int i = 0; i < 10; i++) {
            if(i != 6 && i != 9) {
                maxSets = Math.max(maxSets, count[i]);
            }
        }

        // 결과 출력
        sb.append(maxSets);
        System.out.println(sb.toString());
        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글