
내가 생각했을때 문제에서 원하는부분
첫째 줄에 다솜이의 방 번호 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();
}
}
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.