Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions Hongjoo/백준/요세푸스문제.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
"""
[BOJ]#1158. 요세푸스문제: 실버 4
https://www.acmicpc.net/problem/1158

-1 ~ n 번쨰 사람 중 순서대로 k 번째 사람 제거
- 출력 : 제거되는 순서대로 출력

#FL0W
유형 : 구현, 큐
원형 큐 배치하기
7,3 : 0~ 6
<3, 6, 2, 7, 5, 1, 4>
"""
import sys
N , K = map(int , sys.stdin.readline().split())

#1. 원형 큐 만들기
elements = [i for i in range(1,N+1)]
answer = []
p = 0
while elements :
p = (p + K-1) % len(elements)
answer.append(elements.pop(p))
#2.출력
print("<"+", ".join(list(map(str, answer))) + ">")
30 changes: 30 additions & 0 deletions Hongjoo/백준/타노스는요세푸스가밉다.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
"""
[BOJ] #28066.타노스는 요세푸스가 밉다 : 큐 / 실버2
https://www.acmicpc.net/problem/28066
"""
import sys
from collections import deque
input = sys.stdin.readline

N , K = map(int , input().split())

elements = deque([i for i in range(1, N+1)])
start = 0
while len(elements) > 1 : # 탐색 종료 조건 : 청설모가 1마리 이하로 남을 떄

if len(elements) < K : # K보다 적게 남아있으면, 강제종료
print(elements[0])
exit()
# elements 개수 >= K
first = elements[0]
# 1. K개 삭제(first 도 포함해서 일단 삭제)
for i in range(K): # K-1 개 삭제

elements.popleft()

#2.기본 첫번째 요소를 맨 뒤쪽에 추가,
# 다음 첫번째 요소는 자동 맨 앞(idx= 0 )으로 배치됨
elements.append(first)


print(elements[0])