๋ฌธ์
์ฝ๋
#include <iostream>
#include <stack>
#include <vector>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int N; cin>>N;
stack<int>st;
vector<char> ans;
int curr = 0;
while(N--){
int num; cin>>num;
if(st.empty()){
if(curr>num){
cout<<"NO";
return 0;
}
int first = curr;
for(int i=0; i<abs(num-first); i++){
ans.push_back('+');
st.push(++curr);
}
ans.push_back('-');
st.pop();
}
else if(st.top()==num){
ans.push_back('-');
st.pop();
}
else if(st.top()>num){
while(true){
if(st.top()==num) break;
ans.push_back('-');
st.pop();
}
}
else if(st.top()<num){
if(curr>num){
cout<<"NO";
return 0;
}
while(true){
if(st.top()==num){
ans.push_back('-');
st.pop();
break;
}
ans.push_back('+');
st.push(++curr);
}
}
}
for(char c: ans) cout<<c<<'\n';
}
ํ์ด
์ฝ๋ ๊ตฌํ ์์ฒด๋ ์ด๋ ต์ง ์์ผ๋ ์ด ๋ฌธ์ ๋ฅผ ์ฒ์ ๋ณด์์ ๋ ๋ฌธ์ ์์ฒด๊ฐ ์ดํด๊ฐ ๊ฐ์ง๋ฅผ ์์์ต๋๋ค. ์ ์ถ๋ ฅ์ ๋ณด๊ณ ๋์ถฉ ์์์ ํด์ ํ์ด๋ณด์์ง๋ง ๋ฌด์ธ๊ฐ ์๋ชป๋์๋์ง ์ฑ์ ํ์ ๋๋ ์ค๋ต์ด ๋ด๊ณ ๊ทธ๋ ๊ฒ ๋ฏธ์ณ๊ฐ๋ ๋์ค ์ง๋ฌธ ๊ฒ์ํ์์ ์๋ ๋ฌธ์ ์ค๋ช ์์์ ์ฐพ์์ ๋ณด๊ฒ ๋์์ต๋๋ค.
์ ์์์ด ์์์ผ๋ฉด ์์ง๋ ๋ฌธ์ ์ดํด์กฐ์ฐจ ๋ชปํ์ ๊ฒ์ ๋๋ค.(์ ์์ ๋ถ๊ป ๊ฐ์ฌ๋๋ฆฝ๋๋ค.) ๋ฌธ์ ์ดํด๊ฐ ๊ฐ์ง ์์ผ์ ๋ถ๋ค์ ํ๋ฒ ์์ฒญํ์๋ฉด ์ดํด๊ฐ ๋ฐ๋ก ๋ ๊ฒ ๊ฐ์ต๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 10799๋ฒ - ์ ๋ง๋๊ธฐ (0) | 2022.03.10 |
---|---|
[๋ฐฑ์ค,c++] 1935๋ฒ - ํ์ ํ๊ธฐ์2 (0) | 2022.03.10 |
[๋ฐฑ์ค,c++] 23977๋ฒ - To Find Password (0) | 2022.03.10 |
[๋ฐฑ์ค,c++] 1991๋ฒ - ํธ๋ฆฌ ์ํ (0) | 2022.03.08 |
[๋ฐฑ์ค,c++] 1240๋ฒ - ๋ ธ๋์ฌ์ด์ ๊ฑฐ๋ฆฌ (0) | 2022.03.08 |
[๋ฐฑ์ค,c++] 21918๋ฒ - ์ ๊ตฌ (0) | 2022.03.01 |
๋๊ธ