알고리즘 문제

[C/C++ 백준 1475번] 방 번호 (Silver 5)

새파란 공대생 2020. 7. 7. 21:02

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

 

1475번: 방 번호

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

www.acmicpc.net

숫자의 개수를 세는데, 6과 9는 같이 세어주자 (같이 쓸 수 있다). 이후 한 세트에 6이 2개씩(아니면 9가 2개씩) 들어있음을 감안해서 숫자 세트의 수를 세어주면 된다.

코드는 다음과 같다.

 

#include <cstdio>
#include <algorithm>
using namespace std;
int main(void){
	int N, num[10]={}, maxi=-1, sixorninecnt=0;
	scanf("%d",&N);
	while(N>=10){
		num[N%10]++;
		N /= 10;
	}
	num[N]++;
	for(int i=0; i<10; i++){
		if(i==6 || i==9)
			sixorninecnt += num[i];
		else
			maxi = max(maxi, num[i]);
	}
	maxi = max(maxi, (sixorninecnt+1)/2);
	printf("%d", maxi);
}