※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 11025번 문제인 요세푸스 문제 3이다.
문제는 아래 링크를 확인하자.

https://www.acmicpc.net/problem/11025 

 

11025번: 요세푸스 문제 3

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000,000)

www.acmicpc.net

마지막에 남은 한 사람서부터 처음 시작하는 원으로 역추적하는 과정을 관찰하여 점화식을 세울 수 있다.

사람의 번호가 0부터가 아닌 1부터 붙어있음에 유의하자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int N, K; cin >> N >> K;
	int ans = 0;
	for (int i = 1; i <= N; i++) {
		ans = (ans + K) % i;
	}

	cout << ans + 1;
}
728x90

+ Recent posts