반응형
예제 입력 1 복사
()(((()())(())()))(())
예제 출력 1 복사
17
#include <iostream>
#include <stack>
#include <cstring>
using namespace std;
int main(void)
{
char str[100001];
stack <char> st;
cin >> str;
int len = strlen(str);
int cnt = 0;
//int curr_size = 0;
for (int i = 0; i < len; i++)
{
if (str[i] == '(')
{
st.push(str[i]);
if (str[i + 1] && str[i + 1] != ')')
cnt += 1;
}
else if (str[i] == ')')
{
if (str[i - 1] && str[i - 1] == ')')
st.pop();
else
{
st.pop();
cnt += st.size();
}
}
}
cout << cnt;
}
직접 괄호 char를 넣은 것
굳이 메모리 더 쓰고 복잡함
#include <iostream>
#include <cstring>
using namespace std;
int main(void)
{
char str[100001];
int top = 0;
cin >> str;
int len = strlen(str);
int cnt = 0;
for (int i = 0; i < len; i++)
{
if (str[i] == ')')
{
if (str[i - 1] == ')')
{
top--;
cnt++;
}
else // laser
{
top--;
cnt += top;
}
}
else
top++;
}
cout << cnt;
}
( 괄호로만 확인하고
따로 stack을 안해서 간결하다.
반응형
'C언어' 카테고리의 다른 글
백준 1918번 후위표기식 만들기 : 반례추가 (0) | 2020.08.18 |
---|---|
백준 1935번 boj 후위 표기식2 : stack 써서 calculate number! (0) | 2020.08.18 |
백준 17299번 오등큰수 : 배열크기 중요하다..!!! (0) | 2020.08.18 |
백준 17298번 오큰수 / 인덱스와 값의 비교 유의해야 (0) | 2020.08.17 |
백준 boj 17413번 단어 뒤집기 2 stl 짱! (0) | 2020.08.17 |
boj 백준 1158번 요세푸스 문제 한번에 통과 ! (0) | 2020.08.12 |
boj 백준 큐 10845번 한번에 통과! stl 짱이다.. (0) | 2020.08.12 |
백준 boj 1406번 에디터 문제 또 시간초과ㅜ vector코드 있음 (0) | 2020.08.11 |