백준 1158번: 요세푸스 문제, 큐

Se0ng_1l·2022년 7월 14일
0

백준

목록 보기
28/40

https://www.acmicpc.net/problem/1158

큐(Queue)

Queue란,

FIFO(First In First Out)

첫번째로 들어간 원소가 첫 번째로 나온다.
예를 들면,
  유명한 카페 앞에 손님들이 아메리카노를 주문하고 대기하고 있다.
  이때 가장 먼저 들어가 주문한 손님부터 차례대로 아메리카노를 받는다.

관련 함수

#include <queue> : 전처리기
std::queue<Type> 변수명; : 선언
변수명.front() : 큐의 가장 앞에 원소를 리턴한다.
변수명.push(데이터) : 큐의 끝에 데이터를 집어 넣는다.
변수명.pop() : 큐의 가장 앞 원소를 꺼낸다.
#include <iostream>
#include <queue>
using namespace std;

int main()
{
    queue<int> q;
    int num;
    int k;
    cin >> num >> k;
    for(int i = 1; i <= num; i++)
    {
        q.push(i);
    }
    cout << "<";
    while(num > 1)
    {
        for(int i = 0; i < k - 1; i++)
        {
            q.push(q.front());
            q.pop();
        }
        cout << q.front() << ", ";
        q.pop();
        num--;
    }
    cout << q.front() << ">";
}
profile
치타가 되고 싶은 취준생

0개의 댓글