백준 1874 스택수열 c++
[문제 링크]
https://www.acmicpc.net/problem/1874
[입출력 예]
입력 | 출력 |
---|---|
8 4 3 6 8 7 5 2 1 |
+ + + + - - + + - + + - - - - - |
[소스코드]
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
stack<int> s;
int n;
int cur = 1;
int target;
string result;
bool success=true;
cin>>n;
while(n--){
cin>>target;
if(s.size()==0){
s.push(cur++);
result+="+\n";
}
if(s.size()!=0 && target>s.top()){
while(target>s.top()){
s.push(cur++);
result+="+\n";
}
}
if (s.size()!=0 && target<s.top()){
success=false;
break;
}
if (s.size()!=0 && target ==s.top()){
s.pop();
result+="-\n";
}
}
if (success) cout<<result;
else cout<<"NO";
return 0;
}
// 시간 오래 잡아먹은 점들
// 1. top, pop 조회 시 에러나는 부분 고려 못한 점.
// 2. 뺄 때 cur를 같이 줄여서 스택의미없게 만든 점.
// 3. 문제를 다 푼 다음에도, 남겨져 있었던 확인용 출력문에서의 pop때문에 core dumped 에러가 났다.
// 4. 항상 참조할 때 없는 메모리를 참조하는 타이밍에 유의하자.
'PS > BOJ' 카테고리의 다른 글
백준 17298 오큰수 c++ (0) | 2022.01.13 |
---|---|
백준 6918 옥상 정원 꾸미기 c++ (0) | 2022.01.13 |
백준 2493 탑 c++ (0) | 2022.01.08 |
백준 5397 키로거 c++ (0) | 2022.01.04 |
백준 2003 수들의 합 2 (c++) (0) | 2022.01.04 |
댓글
이 글 공유하기
다른 글
-
백준 17298 오큰수 c++
백준 17298 오큰수 c++
2022.01.13 -
백준 6918 옥상 정원 꾸미기 c++
백준 6918 옥상 정원 꾸미기 c++
2022.01.13 -
백준 2493 탑 c++
백준 2493 탑 c++
2022.01.08 -
백준 5397 키로거 c++
백준 5397 키로거 c++
2022.01.04