728x90
반응형
문제 링크 : https://www.acmicpc.net/problem/1158
목차
1. 설명
2. 내 코드
3. 실행 결과
설명
백준 실버 4 문제 입니다.
문제명 : 요세푸스 문제
이번에는 list, iterator를 사용하여 풀었습니다.
내 코드
#include<iostream>
#include<string>
#include<vector>
#include<stack>
#include<queue>
#include<list>
#include<algorithm>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, k;
cin >> n >> k;
list<int> circleList;
for (int i = 1; i <= n; ++i)
{
circleList.push_back(i);
}
list<int>::iterator target = circleList.begin();
cout << "<";
while (n > 0)
{
for (int i = 1; i < k; i++)
{
target++;
if (target == circleList.end()) target = circleList.begin();
}
if (n == 1)
{
cout << *target;
break;
}
cout << *target << ", ";
n--;
target = circleList.erase(target);
if (target == circleList.end()) target = circleList.begin();
}
cout << ">";
}
실행 결과

'c++' 카테고리의 다른 글
| c++의 function과 EventBus로 활용법 (0) | 2025.12.12 |
|---|---|
| 백준 c++ 28278 문제 풀이 (0) | 2025.05.21 |
| 백준 c++ 1158 문제 풀이 (0) | 2025.05.19 |
| 백준 c++ 1966 문제 풀이 (0) | 2025.05.18 |
| 백준 c++ 1269 문제 풀이 (0) | 2025.05.17 |