티스토리 뷰

https://www.swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIsY84KEPMDFAWN



영준이가 카드 게임을 하려고 한다. 게임을 시작하려면 Space, Diamond, Heart, Clover 별로 1~13 숫자를 가진 총 52개의 카드가 있어야 한다. 현재 가지고 있는 카드가 주어질 때 게임을 시작하려면 문양 별로 몇개의 카드가 더 있어야 하는지 구해야 한다. 각 문양별로 해당 숫자의 카드를 가지고 있는지 여부를 card라는 2차원 배열로 두고 boolean 값으로 구분한다. 중간에 카드가 중복되면 ERROR를 출력한다.



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
#include <cstdio>
#include <cstring>
 
int main()
{
    int t;
    scanf("%d",&t);
    for(int k=1;k<=t;k++)
    {
        char s[1005];
        scanf("%s",s);
        int card[5][14],len=strlen(s);
        int a=13,b=13,c=13,d=13,f=1;
        memset(card,0,sizeof(card));
        for(int i=0;i<len;i+=3)
        {
            int n=(s[i+1]-'0')*10+s[i+2]-'0';
            if(s[i]=='S')
            {
                if(card[1][n]) { printf("#%d ERROR\n",k),f=0break; }
                else card[1][n]=true,a--;
            }
            else if(s[i]=='D')
            {
                if(card[2][n]) { printf("#%d ERROR\n",k),f=0break; }
                else card[2][n]=true,b--;
            }
            else if(s[i]=='H')
            {
                if(card[3][n]) { printf("#%d ERROR\n",k),f=0break; }
                else card[3][n]=true,c--;
            }
            else if(s[i]=='C')
            {
                if(card[4][n]) { printf("#%d ERROR\n",k),f=0break; }
                else card[4][n]=true,d--;
            }
        }
        if(f) printf("#%d %d %d %d %d\n",k,a,b,c,d);
    }
    return 0;
}
cs


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

1206 View  (0) 2018.03.28
1215 회문1  (0) 2018.03.28
1249 보급로  (0) 2018.03.27
4050 재관이의 대량 할인  (0) 2018.03.27
2382 미생물 격리  (0) 2018.03.26
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday