https://www.acmicpc.net/problem/10799
c언어에서 top 변수를 써서 스택을 구현하면 된다.
#include <stdio.h>
#include <string.h>
int main() {
char ir[100001];
int stack[100001];
int top = -1;
int cnt = 0;
// 입력 받기
scanf("%s", ir);
int len = strlen(ir);
for (int i = 0; i < len; i++) {
if (ir[i] == '(') {
stack[++top] = '(';
} else {
if (ir[i - 1] == '(') {
top--;
cnt += top + 1; // 현재 쇠막대기들을 카운팅합니다.
} else {
top--;
cnt += 1; // 나머지 부분을 세는 것입니다.
}
}
}
printf("%d\n", cnt);
return 0;
}
'알고리즘 문제풀이' 카테고리의 다른 글
공주님의 정원[백준 2457] (0) | 2024.07.18 |
---|---|
팀 이름 정하기[백준 1296] (0) | 2024.07.17 |
도키도키 간식드리미[백준 12789] (1) | 2024.07.11 |
풍선 터뜨리기[백준 2346] (0) | 2024.07.10 |
스택 2 [백준 28278] (0) | 2024.07.09 |