백준 1874 스택 수열 C++

백준 1874 스택 수열.

백준 1874번 "스택 수열" 문제의 자세한 내용은 글 하단의 문제 링크를 참고하세요.

1874번 문제에 주어지는 입력 및 예시

입력: 

8
4
3
6
8
7
5
2
1

출력:

+
+
+
+
-
-
+
+
-
+
+
-
-
-
-
-

코드

백준 1874번 "스택 수열" 문제의 코드입니다.

#include <bits/stdc++.h>
using namespace std;
int main() {
	int num,k=1;
	queue<int> q;
	stack<int> a;
	queue<char> result;
	cin>>num;
	for(int i=0;i<num;i++){
		int tmp;
		cin>>tmp;
		q.push(tmp);
	}
	while(!q.empty()){
		if(!a.empty() && q.front()==a.top()){
			q.pop();
			a.pop();
			result.push('-');	
		}
		else if(k<=q.front()){
            result.push('+');
			a.push(k++);
		}else{
			cout<<"NO";
			return 0;
		}
	}
	while(!result.empty()){
		char tmp=result.front(); //result를 string으로 쓰면 틀림. 
		cout<<tmp<<"\n";
		result.pop();
	}
	return 0;
}

실행

위의 코드를 예제의 입력을 넣어 실행했을 때의 결과입니다.

'C' 카테고리의 다른 글

백준 1920 수 찾기 C++  (0) 2023.04.07
백준 1260 DFS와 BFS C++  (0) 2023.04.06
백준 18111 마인크래프트 C++  (0) 2023.04.06
백준 1012 유기농 배추 C++  (0) 2023.04.06
백준 2920 음계 C++  (0) 2023.04.06

Designed by JB FACTORY