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 | #include <stdio.h> #include <string.h> int isGood(char* arr) { int len = strlen(arr); char stk[100005] = { 0 }; int curIdx = -1; for (int i = 0; i < len; i++) { if (curIdx == -1) { stk[0] = arr[i]; curIdx++; } else { if (stk[curIdx] == arr[i]) { stk[curIdx] = 0; curIdx--; } else { stk[++curIdx] = arr[i]; } } } if (curIdx != -1) { return 0; } else { return 1; } } int main() { int n; scanf("%d", &n); int sum = 0; while (n--) { char arr[100005] = { 0 }; scanf("%s", &arr); sum += isGood(arr); } printf("%d", sum); } | cs |
스텍을 활용하면 되는 문제였다.
괄호 맞추기같은 문제도 스텍으로 해결할 수 있을 것 같다.
'알고리즘 > 문자와 문자열' 카테고리의 다른 글
4949 균형잡힌 세상 (0) | 2020.01.06 |
---|---|
9933 민균이의 비밀번호 (0) | 2020.01.06 |
10551 STROJOPIS (0) | 2020.01.06 |
5218 알파벳 거리 (0) | 2020.01.05 |
11656 접미사 배열 (0) | 2020.01.05 |