1475번 방번호 (C++)

728x90
반응형

https://www.acmicpc.net/problem/1475

 

1475번: 방 번호

첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다.

www.acmicpc.net

9의 경우는 6인 것처럼 카운팅해준다.

 

0부터 9까지 몇 개 나왔는지 확인하고 6은 6과 9의 카드 모두 쓸 수 있으니 2로 나눠서 몇 팩이 필요한지 본다.

만약 6이 홀수로 남으면 한 팩이 더 필요하므로 +1 해준다.

 

나머지 숫자는 한 팩당 카드 하나씩 있으므로 카운팅한 갯수가 필요한 팩의 수이다.

 

각 숫자가 필요한 팩의 개수 중 가장 큰 수가 답이다.

 

#include <iostream>
#include <string>
using namespace std;

int num[10];

int main(void) {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	
	int n;
	cin >> n;

	while (n > 0) {
		num[n % 10]++;
		if (n % 10 == 9) {
			num[9]--;
			num[6]++;
		}
		n /= 10;
	}
	num[6] = num[6] % 2 == 0 ? num[6] / 2 : num[6] / 2 + 1;

	int sum = 1;
	for (int i = 0; i < 10; i++) {
		if (sum < num[i]) {
			sum = num[i];
		}
	}

	cout << sum << "\n";
	
	return 0;
}
728x90
반응형
TAGS.

Comments