티스토리 뷰

https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWHz7xD6A20DFAVB&categoryId=AWHz7xD6A20DFAVB&categoryType=CODE



한자리수 만들고 한자리수 중에 체크 안된것 확인 -> 두자리수 만들고 두자리수 중에 체크 안된것 확인 ... 체크 안된 수를 찾을 때 까지 반복한다. 체크 배열을 세자리수까지만 잡았는데 세자리 안에 답이 나오는 것 같다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <cstdio>
#include <cstring>
 
int t,n,a[1000],c[1000];
 
int pow(int k)
{
    int ret=1;
    while(k--) ret*=10;
    return ret;
}
 
int main()
{
    scanf("%d",&t);
    for(int T=1;T<=t;T++)
    {
        memset(c,0,sizeof(c));
        scanf("%d",&n);
        for(int i=0;i<n;i++)
            scanf("%d",&a[i]);
        for(int k=1; ;k++)
        {
            bool f=false;
            for(int i=0;i<=n-k;i++)
            {
                int num=0;
                for(int j=i,w=pow(k-1);j<i+k;j++,w/=10)
                    num+=a[j]*w;
                c[num]=true;
            }
            for(int i=k==1?0:pow(k-1);i<pow(k);i++)
            {
                if(!c[i])
                {
                    printf("#%d %d\n",T,i);
                    f=true;
                    break;
                }
            }
            if(f) break;
        }
    }
    return 0;
}
cs


'Algorithm > SW Expert Academy' 카테고리의 다른 글

3304 최장 공통 부분 수열  (0) 2018.04.11
3307 최장 증가 부분 수열  (0) 2018.04.11
2817 부분 수열의 합  (0) 2018.04.11
1206 View  (0) 2018.03.28
1215 회문1  (0) 2018.03.28
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday