1475번: 방 번호
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다.
www.acmicpc.net
0~9까지의 숫자로 이루어진 숫자 세트를 이용하여 방번호를 표현하고자 한다.
주어진 입력은 최소 몇 개의 세트를 이용해야 하는지 출력하면 된다.
단, 문제의 핵심 포인트는 6과 9를 서로 뒤집어서 사용할 수 있다고 한다.
//1
배열을 0~9까지가 아닌 0~8까지만 생성하였다.
이유는 6과 9를 함께 count하면서 나중의 계산을 편하게 하기 위함이다.
//2
idx 변수로 최댓값의 인덱스를, max변수로 배열의 최댓값을 저장한다.
//3
최댓값의 인덱스가 6일 경우에, 한 세트에 6과 9가 각각 1개, 총 2개가 있으므로 그의 절반의 수만큼의 세트가 필요하다.
만약 홀수 일 경우에는 6또는 9가 한 개 더 필요하기 때문에 1세트를 추가해준다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String N = sc.next();
//1
int[] arr = new int[9];
for (int i = 0; i < N.length(); i++) {
if(N.charAt(i) == '9')
arr[6]++;
else
arr[N.charAt(i)-48]++;
}
//2
int idx = 0;
int max = Integer.MIN_VALUE;
for (int i = 0; i < arr.length; i++) {
if(max < arr[i]) {
max = arr[i];
idx = i;
}
}
//3
if(idx == 6) {
if(max % 2 == 0)
System.out.println(max/2);
else
System.out.println(max/2 +1);
}
else
System.out.println(max);
sc.close();
}
}
'Algorithms > BOJ' 카테고리의 다른 글
[Python, Java] 15649. N과 M(1) (0) | 2021.02.06 |
---|---|
[Java] 16236. 아기 상어 (0) | 2021.02.03 |
[Python] 2004. 조합 0의 개수 (0) | 2021.02.02 |
[Java] 13458. 시험 감독 (0) | 2021.01.29 |
[Java] 2217. 로프 (0) | 2021.01.28 |