문제
다솜이는 은진이의 옆집에 새로 이사왔다.
다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다.
다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오.
(6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
입력
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
출력
첫째 줄에 필요한 세트의 개수를 출력한다.
코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int result = 0;
int temp = 0; // 6과 9의 합
int[] arr = new int[10]; // 연산된 0 ~ 9 숫자 개수
String roomNumber = br.readLine(); // 주어진 방 번호
char[] rommArr = roomNumber.toCharArray();
for(int idx = 0; idx < rommArr.length; idx++) {
arr[rommArr[idx]-'0']++;
}
for (int idx = 0; idx < 10; idx++) {
if(idx == 6 || idx == 9){
temp += arr[idx];
}else{
if(result < arr[idx]) result = arr[idx];
}
}
if(temp % 2 != 0) temp++;
if(result < (temp / 2)) result = temp / 2;
System.out.println(result);
}
}
0~9까지의 배열을 생성하고 순회하며 갯수를 더한 후 최대값을 갱신하였다.
https://www.acmicpc.net/problem/1475
'Algorithm > 백준' 카테고리의 다른 글
BOJ 5397 키로거 (0) | 2023.04.27 |
---|---|
BOJ 1406 에디터 (0) | 2023.04.18 |
BOJ 3273 두 수의 합 (0) | 2023.04.18 |
BOJ 2577 숫자의 개수 (0) | 2023.04.17 |
BOJ 10808 알파벳 갯수 (0) | 2023.04.17 |