티스토리 뷰
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=0; break; } else card[1][n]=true,a--; } else if(s[i]=='D') { if(card[2][n]) { printf("#%d ERROR\n",k),f=0; break; } else card[2][n]=true,b--; } else if(s[i]=='H') { if(card[3][n]) { printf("#%d ERROR\n",k),f=0; break; } else card[3][n]=true,c--; } else if(s[i]=='C') { if(card[4][n]) { printf("#%d ERROR\n",k),f=0; break; } 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 |