반응형
#INFO
난이도 : SIVLER4
알고리즘 유형 : DataStructure_QUEUE
출처 : 11866번: 요세푸스 문제 0 (acmicpc.net)
#SOLVE
큐 자료구조를 이용하면 간단하게 풀이 가능한 문제 였습니다. 입력받은 N까지의 수를 QUEUE 에 PUSH한 뒤, K번째 사람이면 pop을 하고 K번째 사람이 아니라면 pop 한 뒤, 다시 뒤에서 push 해 줍니다.
while(!q.empty()) {
if (cnt % K == 0) {
int ans = q.front();
q.pop();
if (q.empty()) { cout << ans << ">"; }
else { cout << ans << ", ";}
}
else {
int tmp = q.front();
q.pop();
q.push(tmp);
}
cnt++;
}
#CODE
#include <iostream>
#include <queue>
using namespace std;
int main(int argc, char* argv[]){
int N, K;
cin >> N >> K;
queue<int> q;
for (int i = 1 ; i <= N; i++) {
q.push(i);
}
cout << "<";
int cnt = 1;
while(!q.empty()) {
if (cnt % K == 0) {
int ans = q.front();
q.pop();
if (q.empty()) { cout << ans << ">"; }
else { cout << ans << ", ";}
}
else {
int tmp = q.front();
q.pop();
q.push(tmp);
}
cnt++;
}
return 0;
}
반응형
'Archive2 > ProblemSolving' 카테고리의 다른 글
[BOJ] 1966 "프린터 큐" 문제 풀이 & 소스 코드 With C/C++ (0) | 2022.01.29 |
---|---|
[BOJ] 2579 "계단 오르기" 문제 풀이 & 소스 코드 With C/C++ (0) | 2022.01.28 |
[BOJ] 2164 "카드2" 문제 풀이 & 소스 코드 With C/C++ (0) | 2022.01.24 |
[BOJ] 1158 "요세푸스 문제" 문제 풀이 & 소스 코드 With C/C++ (0) | 2022.01.06 |
[BOJ] 11660 "구간 합 구하기 5" 문제 풀이 & 소스 코드 With C/C++ (0) | 2022.01.04 |