-
백준 1158 - 요세푸스 문제백준 algorithm 2020. 2. 26. 00:34반응형
queue를 사용하여 풀 수 있다.
원하는 n번째가 나올때까지 pop, push를 이어가다 원하는 숫자가 나오면 프린트하고 pop을 하는 방식을 취하면 된다.
본인은 해당하는 값들을 vector에 넣어 print하였다.
#include <iostream> #include <queue> #include <vector> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); int N, K; cin >> N>>K; queue<int> jose; vector<int> answer; for(int i=1;i<=N;++i) { jose.push(i); } while(!jose.empty()) { for(int i=0; i<K-1; ++i) { jose.push(jose.front()); jose.pop(); } answer.push_back(jose.front()); jose.pop(); } cout<<"<"; int i; for(i=0; i<answer.size()-1; ++i) { cout<<answer[i]<<", "; } cout<<answer[i]<<">\n"; return 0; }
반응형'백준 algorithm' 카테고리의 다른 글
백준 10799 - 쇠막대기 (0) 2020.03.03 백준 - 17413 단어 뒤집기 2 (0) 2020.03.02 백준 1406 - 에디터 (0) 2020.02.25 백준 1874 - 스택 수열 (0) 2020.02.21 백준 9012 - 괄호 (0) 2020.02.21