BOJ - 1475번_방 번호

한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하는 프로그램 작성하기 (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)


풀이

각 번호에 해당하는 인덱스의 배열 값을 1씩 증가시키며 개수를 확인한다. 가장 큰 배열 값이 필요한 세트의 개수이고, 6과 9는 합쳐서 계산한다.


소스코드

#include <bits/stdc++.h>
using namespace std;

int arr[15];
int main() {
	ios::sync_with_stdio(0);
	cin.tie(0); cout.tie(0);
	int n;
	cin >> n;
	
	while(n>=0) {
		arr[n%10]++;
		n/=10;
		if(n==0) break;
	}
	
	int num=0;
	for(int i=0; i<10; i++) {
		if(i!=6 && i!=9) {
			num = max(num, arr[i]);	
		}
	}
	cout << max(num, (arr[6]+arr[9]+1)/2);
}