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 |