#include <iostream> #include <algorithm> #include <vector> int stack[1000000]; int main(void) { std::ios_base::sync_with_stdio(false); std::cin.tie(NULL); int len; std::cin >> len; std::vector<int> val(len); for(int idx = 0; idx < len; idx++) { std::cin >> val[idx]; } std::fill(stack, stack + 1000000, 0); int valPos = 0; int seq = 1; int max = 0; std::vector<char> store; while(valPos < len && stack[max - 1] < val[valPos]) { stack[max++] = seq++; store.push_back('+'); while(valPos < len && stack[max - 1] == val[valPos]) { max--; valPos++; store.push_back('-'); } } if(valPos < len) { std::cout << "NO" << "\n"; } else { for(int idx = 0; idx < store.size(); idx++) { std::cout << store[idx] << "\n"; } } return 0; } | cs |
'problem solving' 카테고리의 다른 글
[프로그래머스]단체사진 찍기 (0) | 2020.03.28 |
---|---|
[SWEA]2814. 최장 경로 (0) | 2020.03.15 |
[LeetCode]#2 Add Two Numbers (0) | 2020.03.14 |
[프로그래머스]디스크 컨트롤러 (0) | 2020.03.14 |
[프로그래머스]섬 연결하기 (0) | 2020.03.13 |