queuestack C++ - 백준 24511

김관중·2024년 1월 12일
0

백준

목록 보기
10/129


https://acmicpc.net/problem/24511
이 문제는 시간 초과 때문에 꽤 많이 시도했다.
쓸데 없는 과정을 줄이는 알고리즘을 작성하는 것이 관건이었다.

큐에서의 원소는 항상 다음 자료구조로 넘어가고 스택에서의
원소는 다음 자료구조로 넘어가지 않는다.

따라서 큐에서의 원소들만 처리해주면 된다.

코드는 다음과 같다.

#include <bits/stdc++.h>
#define MAX 100000+1
using namespace std;

bool status[MAX];
deque<int> dq;
int N;
int M;
int C;
int num;

int main(){
	ios_base :: sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	
	cin >> N;
	for(int i=1;i<=N;i++){
		cin >> status[i];
	}
	for(int i=1;i<=N;i++){
		cin >> num;
		if(!status[i]) dq.push_back(num);
	}
	cin >> M;
	for(int i=0;i<M;i++){
		cin >> num;
		dq.push_front(num);
		cout << dq.back() << ' ';
		dq.pop_back();
	}	
}
profile
꾸준히 학습하기

0개의 댓글

관련 채용 정보