반응형

문제 이해
> 배열 안에 자료구조를 구현하였다
> 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등처음찍어봄
반응형
'백준 알고리즘' 카테고리의 다른 글
| [c++ 알고리즘] 백준 1759: 암호 만들기 (0) | 2024.09.12 |
|---|---|
| [c++ 알고리즘] 백준 15686: 치킨배달 (0) | 2024.09.12 |
| [C++ 백준알고리즘] 백준 12015: 가장 긴 증가하는 부분 수열 2 (0) | 2024.09.01 |
| [C++ 백준알고리즘] 백준 7569: 토마토 (0) | 2024.08.31 |
| [C++ 백준 문제풀이] 백준 1806: 부분합 (0) | 2024.08.25 |