코딩테스트/백준
[백준] 1158번 요세푸스 문제 (C++)
Deff_a
2024. 8. 28. 15:23
문제

https://www.acmicpc.net/problem/1158
풀이
1~N까지 숫자를 vector에 저장한 뒤, K만큼 뒤에 있는 숫자를 출력/삭제하는 방식으로 문제를 풀이했다.
#include<iostream>
#include<vector>
// https://www.acmicpc.net/problem/1158
using namespace std;
int main() {
int N, K, sel = 0;
cin >> N >> K;
K--;
vector <int> vec;
for (int i = 1; i <= N; i++)
vec.push_back(i);
cout << "<";
while (true) {
sel = (sel + K) % vec.size();
cout << vec[sel];
vec.erase(vec.begin() + sel);
if (vec.empty())
break;
else
cout << ", ";
}
cout << ">";
return 0;
}