Problem Solving/백준
[11866] 요세푸스 문제 0
충무로술겜마
2021. 7. 25. 20:33
https://www.acmicpc.net/problem/11866
11866번: 요세푸스 문제 0
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)
www.acmicpc.net
요세푸스 문제 0는
https://www.acmicpc.net/problem/1158
1158번: 요세푸스 문제
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)
www.acmicpc.net
1158번 요세푸스 문제와 내용은 동일합니다. 1158번은 메모리 제한이 256메가, 입력 조건이 5000까지라는 차이점이 존재하는데,
solved.ac 상으로는 어쨌거나 11866번이 실버 4고 1158번이 실버 5네요.
저는 단순한 큐 문제라고 생각을 했고, 직관적으로 생각했을 때 사람이 생각하는 것과 가장 비슷하게 구현했습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
n, k = map(int, input().split())
queue = []
result = []
cursor = -1
for i in range(n):
queue.append(i + 1)
while queue:
for _ in range(k):
cursor += 1
if cursor > len(queue) - 1:
cursor = 0
result.append(queue[cursor])
queue.pop(cursor)
cursor -= 1
print("<", end='')
for i in range(n):
if i == n - 1:
print(str(result[i])+'>')
else:
print(str(result[i]) + ", ", end='')
|
cs |
궁금해서 1158번도 다시 제출해봤는데, 두 문제 다 정답을 받았습니다 ^^