본문 바로가기
Computer Science

영준이의 카드 카운팅

by OKOK 2019. 2. 19.

1. 카드 카운팅

2. 오케이

3. 2차원 배열을 만들어서 숫자와 있는 것 확인하기

4. 그리고 검사할 때, 에러가 들어가는지 확인 


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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <stdio.h>
 
#define INPUT_MAX 15
 
int count[4][14];
 
void counting(char c1, char c2, char c3)
{
    int mark, number;
    switch (c1) {
    case 'S':
        mark = 0;
        break;
    case 'D':
        mark = 1;
        break;
    case 'H':
        mark = 2;
        break;
    case 'C':
        mark = 3;
        break;
    }
    number = (c2 - '0'* 10 + (c3 - '0');
    count[mark][number]++// 해당 배열 체크
    count[mark][0]--// 해당 배열 숫자
}
 
int main()
{
    freopen("input.txt""r", stdin);
    int T, test_case;
    char input[INPUT_MAX + 2], *index;
    scanf("%d"&T);
    for (test_case = 1; test_case <= T; test_case++) {
        int i, j, error;
        error = 0;
        for (i = 0; i < 4; i++) {
            count[i][0= 13;
            for (j = 1; j <= 13; j++) {
                count[i][j] = 0;
            }
        }
        scanf("%s", input);
        index = input;
        while (*index != '\0') {
            char c1, c2, c3;
            c1 = *(index++); // 포인터 변수 활용해서 하나씩 문자열 불러오기
            c2 = *(index++);
            c3 = *(index++);
            counting(c1, c2, c3);
        }
 
        for (i = 0; i < 4; i++) {
            for (j = 1; j <= 13; j++) {
                if (count[i][j] >= 2)
                    error = 1;
            }
        }
 
        if (error) {
            printf("ERROR\n");
        }
        else {
            for (i = 0; i < 4; i++)
                printf("%d ", count[i][0]);
            printf("\n");
        }
    }
    return 0;
}
 
cs

 


'Computer Science' 카테고리의 다른 글

동한이의 정수 나열  (0) 2019.02.19
승률 비교하기  (0) 2019.02.19
영빈이의 대량할인  (0) 2019.02.19
무선 단속 카메라  (0) 2019.02.19
제곱수의 합 계산하기  (0) 2019.02.18

댓글