kar7mp5
[Baekjoon] 1158 요세푸스 문제 (C++ 풀이) 본문
728x90
https://www.acmicpc.net/problem/1158
뭔가 매우 불필요한 방식으로 문제 해결한 거 같습니다.
그래서 코드만 참고하시면 좋을 거 같습니다.
#include <iostream>
#include <vector>
using namespace std;
void print_result(vector<int> &v) {
cout << '<';
for (int i = 0; i < v.size(); ++i) {
cout << v[i];
if (i != v.size() - 1) {
cout << ", ";
}
}
cout << '>';
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int N, K;
cin >> N >> K;
vector<int> v;
for (int i = 0; i < N; ++i) {
v.push_back(i + 1);
}
vector<int> result;
int idx = K - 1;
for (int i = 0; i < N - 1; ++i) {
result.push_back(v[idx]);
v.erase(v.begin() + idx);
idx = (idx + K - 1) % v.size();
}
result.push_back(v[0]);
print_result(result);
return 0;
}728x90
'Problem Solving > Baekjoon' 카테고리의 다른 글
| [Baekjoon] 17070 파이프 옮기기 1 (C++ 풀이) (1) | 2024.10.05 |
|---|---|
| [Baekjoon] 10986 나머지 합 (C++ 풀이) (1) | 2024.09.15 |
| [Baekjoon] 1377 버블 정렬 (C++ 풀이) (0) | 2024.06.06 |
| [Baekjoon] 9935 문자열 폭발 (Python 풀이) (0) | 2024.06.06 |