본문 바로가기
Programming/BOJ

#1475 방 번호

by 작은별하나 2022. 8. 18.
반응형

이번 문제는 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

댓글