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 | 31 |
Tags
- 백준
- OS
- 오에스
- 컴공
- 개발
- 정석
- coding
- 브루트포스
- 구현
- 코딩
- 코테
- DP
- vector
- 오퍼레이팅시스템
- 알고리즘
- 문제풀이
- 컴공과
- 자료구조
- c++
- 스택
- 정석학술정보관
- Computer science
- 컴퓨터공학과
- cs
- 그래프
- Operating System
- 너비우선탐색
- bfs
- 북리뷰
- Stack
Archives
- Today
- Total
Little Jay
[C++] 백준 1874번 스택 수열 본문
이 문제는 문제 자체를 이해하는데 많이 시간이 소요되었다
결론부터 말하자면
pop()으로 나오는 숫자들이 처음의 배열과 똑같이 되는 경우를 찾고,
아닌경우는 NO를 출력하면 되는 것이다
문제를 조금 친절히 설명해주면 좋겠지만 문제를 분석하는 것도 결국 능력이기에......
#include <iostream>
#include <stack>
#include <vector>
using namespace std;
int main() {
stack<int> st;
int n, x;
cin >> n;
vector<char> v;
int max = 0;
while (n--) {
cin >> x;
if (x > max) {
for (int i = max + 1; i <= x; i++) {
st.push(i);
v.push_back('+');
}
}
else {
if (st.top() != x) {
cout << "NO" << "\n";
return 0;
}
}
st.pop();
v.push_back('-');
if (max < x) {
max = x;
}
}
for (int i = 0; i < v.size(); i++) {
cout << v[i] << "\n";
}
return 0;
}
'알고리즘 > BOJ' 카테고리의 다른 글
| [C++] 백준 2875번 대회 or 인턴 (0) | 2021.08.02 |
|---|---|
| [C++] 백준 11047번 동전 0 (0) | 2021.08.02 |
| [C++] 백준 10799번 쇠막대기 (0) | 2021.08.02 |
| [C++] 백준 17952번 과제는 끝나지 않아! (0) | 2021.08.02 |
| [C++] 백준 17608번 막대기 (0) | 2021.07.30 |
Comments