본문 바로가기
알고리즘/그리디 알고리즘

1343 폴리노미오

by tryotto 2019. 6. 27.
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
73
74
#include <stdio.h>
 
char arr[600= { 0 };
char rst[600= { 0 };
 
int main() {
    scanf("%s"&arr);
    
    int len = 0;
    int xNum = 0, comN = 0, rstIdx=0;
    for (int i = 0; i < 600; i++) {
        if (arr[i] != 0) len++;
        else break;
    }
    for (int i = 0; i < len; i++) {
        if (arr[i] == '.') {
            if (xNum != 0) {
                //몇 개인지 검사
                if (xNum % 2 == 1) {
                    printf("-1");
                    return 0;
                }
 
                //입력
                int aNum = xNum - (xNum % 4);
                int bNum = xNum % 4;
                for (int j = 0; j < aNum; j++) {
                    rst[rstIdx++= 'A';
                }
                for (int j = 0; j < bNum; j++) {
                    rst[rstIdx++= 'B';
                }
                
                //갯수 초기화
                xNum = 0;
            }
            comN++;
        }
        else {
            if (comN != 0) {
                for (int j = 0; j < comN; j++) {
                    rst[rstIdx++= '.';
                }
                comN = 0;
            }
            xNum++;
        }
    }
    if (comN != 0) {
        for (int j = 0; j < comN; j++) {
            rst[rstIdx++= '.';
        }
    }
    else if (xNum != 0) {
        if (xNum % 2 == 1) {
            printf("-1");
            return 0;
        }
 
        int aNum = xNum - (xNum % 4);
        int bNum = xNum % 4;
        for (int j = 0; j < aNum; j++) {
            rst[rstIdx++= 'A';
        }
        for (int j = 0; j < bNum; j++) {
            rst[rstIdx++= 'B';
        }
 
    }
 
    for (int i = 0; i < len; i++) {
        printf("%c", rst[i]);
    }
}
cs


'알고리즘 > 그리디 알고리즘' 카테고리의 다른 글

1439 뒤집기  (0) 2019.06.28
1507 궁금한 민호  (0) 2019.06.27
1783 병든 나이트  (0) 2019.06.27
1138 한 줄로 서기  (0) 2019.06.27
2437 저울  (0) 2019.06.27