Programming/Algorithm
[Algorithm] C++ 공주 구하기(조세퍼스)
100winone
2019. 12. 23. 18:03
입력설명
첫 줄에 자연수 N(5<=N<=1,000)과 K(2<=K<=9)가 주어진다.
출력설명
첫 줄에 마지막 남은 왕자의 번호를 출력합니다
입력예제
8 3
출력예제
7
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<algorithm>
#include<vector>
using namespace std;
int main() {
int n, k, pos = 0, bp = 0, cnt = 0, i;
scanf("%d %d", &n, &k);
vector<int> prince(n + 1);
while (1) {
pos++;
if (pos > n) pos = 1;
if (prince[pos] == 0) {
cnt++;
if (cnt == k) {
prince[pos] = 1;
cnt = 0;
bp++;
}
}
if (bp == n - 1) break;
}
for (i = 1; i <= n; i++) {
if (prince[i] == 0) {
printf("%d\n", i);
break;
}
}
return 0;
}