숫자 0부터 9까지 1개씩 들어있는 숫자 세트가 있다.
방 번호 N이 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하라.
조건
1. 6과 9는 뒤집어서 이용할 수 있다.
2. N은 1,000,000보다 작거나 같은 자연수이다.
numSet 생성합니다.sixAndNine 에 저장합니다.maxSet에 저장합니다.maxSet과 sixAndNine 를 비교하여 가장 큰 수를 결국 필요한 총 세트수로 출력합니다.import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String N = br.readLine();
int n = Integer.parseInt(N);
if (n < 1 || n > 1000000) {
System.out.println("N은 1 미만, 1,000,000 초과의 수는 입력될 수 없습니다.");
return;
}
int[] numSet = new int[10]; // N 에 출현하는 0 ~ 9까지의 숫자의 갯수를 저장할 배열
for (int i = 0; i < N.length(); i++) {
numSet[N.charAt(i) - '0']++; // N 에 출현하는 숫자의 갯수를 저장
}
// 6과 9에 대한 경우의 수 구하기
int sixAndNine = (numSet[6] + numSet[9] + 1) / 2;
int maxSet = 0;
for (int i = 0; i < 10; i++) {
if (i != 6 && i != 9) {
maxSet = Math.max(maxSet, numSet[i]);
}
}
System.out.println(Math.max(maxSet, sixAndNine));
}
}