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
- Xilinx
- baekjoon
- vitis
- verilog HDL
- chip2chip
- HDLBits
- 정처기
- Beakjoon
- FPGA
- 코딩테스트
- SQL
- Vivado
- 실기
- verilog
- 백준
- Bus
- Zynq
- 정보처리기사
- hdl
- java
- 자격증
- UNIX
- boj
- Backjoon
- AMBA BUS
- linux
- C++
- 리눅스
- axi
- amba
Archives
- Today
- Total
Hueestory
[1874] 스택 수열 (C++) 본문
#include <iostream>
#include <vector>
#include <algorithm>
#include <stack>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
stack<int> st;
vector<char> answer;
int num = 1;
int N; cin >> N;
for (int i = 0; i < N; i++) {
int a; cin >> a;
if (!st.empty() && st.top() == a) {
st.pop();
answer.push_back('-');
}
else if (a >= num) {
while (a >= num) {
st.push(num++);
answer.push_back('+');
}
st.pop();
answer.push_back('-');
}
else if (!st.empty() && st.top() > a) {
cout << "NO" << endl;
return 0;
}
}
for (auto x : answer)
cout << x << "\n";
return 0;
}
1. 스택이 비어있지 않고 top이 입력받은 값과 같으면 pop, ans에 '-' 추가
2. num의 값이 입력받은 값보다 작으면 같아질때까지 num++을 push, ans에 '+' 추가
3. 스택이 비어있지 않고 top이 입력받은 값보다 크면 "NO" 출력
'PS(중단) > BOJ' 카테고리의 다른 글
[1377] 버블 소트 (C++) (0) | 2024.04.23 |
---|---|
[2750] 수 정렬하기 (C++) (0) | 2024.04.23 |
[11286] 절댓값 힙 (C++) (0) | 2024.04.22 |
[2164] 카드2 (C++) (0) | 2024.04.22 |
[17298] 오큰수 (C++) (0) | 2024.04.22 |
Comments