반응형
이번 문제는 Silver V 수준이라고 되어 있지만, 그것보다는 조금 더 쉬운 듯 합니다.
방번호를 하나 주고, 그 방번호를 0부터 9까지의 숫자를 이용해서 표현하기 위해서는 몇개의 숫자셋이 필요한가입니다.
예를 들어서 3457 이란 숫자이면 하나의 숫자셋으로 표현이 가능하죠.
숫자들이 몇번 나타났는지 세면 가장 좋겠죠.
단 6과 9는 혼용해서 쓸 수 있으므로, 6과 9의 숫자 개수는 더한 다음 2로 나누면 됩니다. 홀수인 경우에는 1 많게 하기 위해서,
\[ \lfloor (n(6) + n(9) + 1)/2 \rfloor \]
형태로 사용토록 합니다.
다음은 제가 작성한 코드입니다. 코드는 참조용으로만 봐주세요.
//--------------------------------------------------------------------
// baekjoon #1475
// - by Aubrey Choi
// - created at 2019-07-03
//--------------------------------------------------------------------
#include <stdio.h>
int main()
{
int n, hist[10] = {0, }, max;
scanf("%d", &n);
do
{
hist[n % 10]++;
n /= 10;
} while(n);
hist[6] = (hist[6] + hist[9] + 1) / 2;
max = hist[0];
for(int i = 1; i < 9; i++)
if(max < hist[i]) max = hist[i];
printf("%d\n", max);
return 0;
}
728x90
'Programming > BOJ' 카테고리의 다른 글
#1489 대결 (0) | 2022.08.19 |
---|---|
#1476 날짜 계산 (0) | 2022.08.19 |
#1464 뒤집기 3 (0) | 2022.08.18 |
#1457 정확해 (0) | 2022.08.16 |
#1456 거의 소수 (0) | 2022.08.11 |
댓글