Search
Duplicate

요세푸스 문제

주차
17
문제번호
1158
언어
C++
티어
실버
유형
자료구조
nj_Blog
nj_상태
이해도
풀이
사람
이해도 2
13 more properties

Memo

로직 설명

Queue 자료구조의 특징(FIFO)을 이용하여, K - 1 횟수 만큼 pop과 push를 연속해서 진행하고, 그 후 큐 맨 윗부분에 존재하는 원소를 출력 후 pop을 합니다. 이를 Queue가 빌 때까지 진행합니다.
List로도 풀어보았습니다.

Code

제출 날짜

@4/25/2021

메모리

2148 KB

시간

64 ms
#include <iostream> #include <queue> std::queue<int> q; int N, K; void io_faster() { std::ios_base::sync_with_stdio(false); std::cin.tie(0); std::cout.tie(0); } void input() { io_faster(); std::cin >> N >> K; for(int i = 1 ; i <= N ; i++) q.push(i); } void solve() { std::cout << "<"; while(!q.empty()) { for (int i = 0 ; i < K - 1 ; i++) { q.push(q.front()); q.pop(); } std::cout << q.front(); q.pop(); if (!q.empty()) std::cout << ", "; } std::cout << ">"; } int main() { input(); solve(); return (0); }
C++
복사