문제출처: https://www.acmicpc.net/problem/11866
1. 코드
#include <iostream>
using namespace std;
class quee {
int f;
int b;
int* arr;
public:
quee(int n) {
f = 0;
b = -1;
arr = new int[n];
}
void push(int n) {
arr[++b] = n;
}
int pop() {
if (empty()) return -1;
return arr[f++];
}
int size() {
return b - f + 1;
}
int empty() {
return (b - f) == -1;
}
~quee() {
delete[] arr;
}
};
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
int n, limit;
cin >> n >> limit;
quee q(n * n);
for (int i = 1; i <= n; i++) q.push(i);
cout << "<";
while (q.size() != 1)
{
for (int i = 0; i < limit - 1; i++)
q.push(q.pop());
cout << q.pop() << ", ";
}
cout << q.pop() << ">";
return 0;
}
2. 풀이
클래스를 활용하여 큐를 구현한 다음에 limit에 입력한 값만큼 push()에 pop()을 한 값을 넣고 끝나면 pop을 한 값을 출력했다. 그리고 예제 출력과 같은 형식으로 만들어서 작성하면 쉽게 해결할 수 있다.
'컴퓨터 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 1021번: 회전하는 큐 [C++] (0) | 2021.05.20 |
---|---|
백준 알고리즘 1966번: 프린터 큐 [C++] (0) | 2021.05.17 |
백준 알고리즘 2164번: 카드2 [C++] (0) | 2021.05.15 |
백준 알고리즘 4949번: 균형잡힌 세상 [C++] (0) | 2021.05.11 |
백준 알고리즘 10773번: 제로 [C++] (0) | 2021.05.09 |