반응형
문제
다솜이는 은진이의 옆집에 새로 이사 왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
입력
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다
출력
첫째 줄에 필요한 세트의 개수를 출력한다.
테스트 케이스
입력 1
10101
출력 1
3
입력 2
6666
출력 2
2
입력 3
0123456789
출력 3
1
접근
1.방번호를 입력받는다.
2. 방 번호를 만들기 위한 숫자 세트가 몇 개인지 출력한다.
0~9까지가 하나의 숫자세트입니다.
10칸짜리 배열을 만들어서 숫자가 들어올 때마다 해당 배열을 +1 해줘서
마지막에 배열들 중 최댓값을 출력합니다.
주의해야 할 것은 6이 2번 쓰이더라도 숫자 세트 2개를 사용하는 것은 아닙니다.
6과 9는 같은 모양이기 때문입니다.
코드
import java.awt.desktop.SystemEventListener;
import java.io.*;
import java.math.*;
import java.util.*;
public class Main {
/*
1475 problem
*/
public static void main(String[] args) throws NumberFormatException, IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int max = 0;
String input = br.readLine();
int arr[] = new int[10];
for(int i=0; i<input.length(); i++) {
arr[input.charAt(i)-'0']++;
}
int sum = arr[6]+arr[9];
if(sum%2==0) {
sum /= 2;
}
else {
sum /= 2;
sum++;
}
arr[6] = sum;
arr[9] = sum;
for(int i=0; i<input.length(); i++) {
max = Math.max(max, arr[input.charAt(i)-'0']);
}
bw.write(String.valueOf(max));
bw.flush();
br.close();
bw.close();
}
}
주의
6과 9
반응형
'공부 정리 > 백준' 카테고리의 다른 글
[백준] 자바 11723 집합 (0) | 2021.09.01 |
---|---|
[백준] 자바 1476 날짜 계산 (0) | 2021.08.31 |
[백준] 자바 1934 최소공배수 (0) | 2021.08.27 |
[백준] 자바 1436 영화감독 숌 (0) | 2021.08.26 |
[백준] 자바 11651 좌표 정렬하기 2 (0) | 2021.08.25 |
댓글