Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 컴공
- 오퍼레이팅시스템
- coding
- Stack
- 문제풀이
- cs
- vector
- 컴공과
- bfs
- 컴퓨터공학과
- DP
- 정석
- Operating System
- 백준
- 코테
- 브루트포스
- 정석학술정보관
- 오에스
- Computer science
- 너비우선탐색
- 코딩
- 자료구조
- 그래프
- 개발
- c++
- OS
- 구현
- 알고리즘
- 스택
- 북리뷰
Archives
- Today
- Total
Little Jay
[C++] 백준 10799번 쇠막대기 본문
이렇게 푸는 것이 맞는지는 모르겠지만 풀이를 설명하자면
먼저 ( 가 들어올 때 스택에다가 push를 해준다
만약 ( 가 들어오고 다음게 ) 면 레이저를 쏴주야 하기 때문에
스택의 사이즈만큼 계속 더해준다
만약 그것도 아니고 ) 만 들어온다면 마지막에는 하나씩 남는 막대가 생기기 때문에
하나씩 total 개수에 더해준다
#include <iostream>
#include <string>
#include <stack>
using namespace std;
int main() {
string s;
cin >> s;
stack<char> st;
int total_bar = 0;
for (int i = 0; i < s.size(); i++) {
if (s[i] == '(' && s[i + 1] == ')') {
total_bar += st.size();
i++;
continue;
}
if (s[i] == '(') {
st.push(s[i]);
}
else {
total_bar++;
st.pop();
}
}
cout << total_bar << "\n";
return 0;
}
'알고리즘 > BOJ' 카테고리의 다른 글
[C++] 백준 11047번 동전 0 (0) | 2021.08.02 |
---|---|
[C++] 백준 1874번 스택 수열 (0) | 2021.08.02 |
[C++] 백준 17952번 과제는 끝나지 않아! (0) | 2021.08.02 |
[C++] 백준 17608번 막대기 (0) | 2021.07.30 |
[C++] 백준 1436번 영화감독 숌 (0) | 2021.07.23 |
Comments