본문 바로가기
백준 알고리즘

[C++ 알고리즘] 백준 24511: queuestack

by mindun 2024. 9. 5.
반응형

 

 

문제 이해

 

> 배열 안에 자료구조를 구현하였다

> m개의 수를 입력할테니 자료구조의 특성에 맞게 push 혹은 pop 해서 마지막 자료구조까지 간 다음 return 해라

 

 

해결 전략

 

> 각각의 자료구조에 전달 될때 항상 같은방식 ( 1. push, 2. pop )

> stack은 LIFO 구조이므로 한 가지의 값이 지나갈 땐 스택값에는 변동사항 없이 지나감 

> 하나의 queue 자료구조를 생성하고, queuestack의 queue값만 만드는 자료구조에 넣어줌

> queuestack에 삽입되어 있던 값들은 index를 거꾸로 하여 queue에 집어넣어야함.

 

#include <iostream>
#include <queue>

bool w[100000] = {};
int list[100000] = {};
int main() {
	std::ios::sync_with_stdio(0);
	std::cin.tie(0);

	int n;
	std::cin >> n;

	for (int i{ 0 }; i < n; i++) {
		std::cin >> w[i];
	}

	std::queue<int> q;
	
	for (int i{ 0 }; i < n; i++) {
		std::cin >> list[i];
	}
	for (int i{ n - 1 }; i >= 0; i--) {
		if (!w[i]) q.push(list[i]);
	}

	int m;
	std::cin >> m;

	int num;
	for (int i{ 0 }; i < m; i++) {
		std::cin >> num;
		q.push(num);
		std::cout << q.front() << " ";
		q.pop();
	}
	std::cout << "\n";
}

 

> 맞힌사람등수 70등처음찍어봄

반응형