반응형
스케치
코드
- 기본적으로 큐를 활용해서 문제를 풀면 되지만 K번째 값을 뽑는 도중 Q가 K보다 작아지게 될 때를 유의하여 처리하여야 한다.
- Q < K 작은 구간은 나눗셈으로 인덱스를 뽑아서 구현하였다.
- 출력양식 공부가 필요해보인다.
- 2021.03.18 - [Programming/Python] - [파이썬] print() 원하는 양식으로 출력하기 (백준 11866 요세푸스 문제)
# 요세푸스 문제0
from collections import deque
n,k = map(int,input().split())
q = deque()
arr = []
for i in range(1,n+1):
q.append(i)
while q: # 1 2 1
if len(q) >= k:
cnt = 1
while cnt < k:
q.append(q.popleft())
cnt += 1
arr.append(q.popleft())
else:
index = k % len(q)
cnt = 1
if index == 0:
arr.append(q.pop())
else:
while cnt < index:
q.append(q.popleft())
cnt += 1
arr.append(q.popleft())
# 출력형식에 맞게 출력하는 것이 쉽지 않았다...
print('<' ,end='')
for i in range(len(arr)):
if i != len(arr) - 1:
print("%d, " %arr[i], end='')
else:
print("%d>" %arr[i])
'코딩테스트 > 파이썬' 카테고리의 다른 글
[백준] [분할정복] 쿼드트리 1992 (파이썬) (0) | 2021.03.16 |
---|---|
[백준] [DP] 가장 긴 바이토닉 부분 수열 11054 (파이썬) (0) | 2021.03.16 |
[백준] 잃어버린 괄호 1541 (파이썬) (0) | 2021.03.16 |
[백준] [브루트포스] 분해합 2231 (파이썬) (0) | 2021.03.15 |
[백준] [조합] 블랙잭 2798 (파이썬) (0) | 2021.03.15 |