SWEA/[D2]

[C언어] SWEA 1288 새로운 불면증 치료법

ruming 2022. 2. 27. 03:10

N의 배수를 셌을 때, 모든 숫자를 보게 되는 시점은?

 

0부터 9까지 저장된 배열로 숫자가 나왔는지 안나왔는지 셀 것이다.

N번 양을 센다고 해서 횟수를 말하는 줄 알았는데 그게 아니라 양 번호를 말하는 거였다.

#include <stdio.h>
int main(void) {
    int test_case, T;
    scanf("%d", &T);
    for (test_case = 1; test_case <= T; ++test_case)
    {
        int N, tmp, i;
        int num[10] = { 0 };
        scanf("%d", &N);
        for (i = 1; ; i++) {
            tmp = N * i;
            while (tmp != 0) {
                num[tmp % 10] = 1;
                tmp /= 10;
            }
            int flag = 0;
            for (int j = 0; j < 10; j++) {
                if (num[j] == 1) flag++;
            }
            if (flag == 10)    break;
        }
        printf("#%d %d", test_case, i*N);
    }
    return 0;
}

num 배열에 숫자가 나올 때마다 1로 체크하고 배열의 모든 값이 1이 되면 반복문을 빠져나온다.