※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 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
'BOJ' 카테고리의 다른 글
[BOJ 6523 // C++] 요세푸스 한 번 더! (0) | 2021.10.22 |
---|---|
[BOJ 1179 // C++] 마지막 요세푸스 문제 (0) | 2021.10.21 |
[BOJ 17407 // C++] 괄호 문자열과 쿼리 (0) | 2021.10.19 |
[BOJ 1493 // C++] 박스 채우기 (0) | 2021.10.18 |
[BOJ 6497 // C++] 전력난 (0) | 2021.10.17 |