728x90
https://www.acmicpc.net/problem/10799
문제 설명
문제 풀이
#include<stdio.h>
#include<string.h>
char stack[100001];
char t[100001];
int main()
{
int i, cnt = 0, key = -1;
scanf("%s", t);
for(i = 0; i < strlen(t); i++) {
if(key == -1 || t[i] == '(') {
stack[++key] = t[i];
}
else if(t[i] == ')') {
key--;
if(t[i-1] == ')') cnt += 1;
else if(key > -1) cnt += key+1;
}
}
printf("%d", cnt);
return 0;
}
스택에 괄호를 차례대로 쌓아서 레이저를 만나면 쌓여있는 괄호의 수만큼 막대기가 늘어나고 하나의 막대기가 끝이 나면 한개가 증가함
'코테 > 백준' 카테고리의 다른 글
[백준] 2839 설탕 배달 - C++ (0) | 2023.07.21 |
---|---|
[백준] 10845 큐 - C++ (0) | 2023.07.21 |
[백준] 10815 숫자 카드 - C++ (0) | 2023.07.20 |
[백준] 2805 나무 자르기 - C++ (0) | 2023.07.20 |
[백준] 1764 듣보잡 - C++ (0) | 2023.07.19 |