백준 11866 파이썬 print("<" + ", ".join(map(str, result)) + ">")

2024. 5. 6. 08:16코딩/백준 (단계별)

반응형

백준 11866 - 요세푸스 문제 0

문제

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

 

11866번: 요세푸스 문제 0

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

www.acmicpc.net

11866번

답안 코드 :

from collections import deque

n, k = map(int, input().split())

# 초기화된 원형 큐 생성
people = deque(range(1, n + 1))
result = []

while people:
    # k-1번째까지의 사람을 큐의 맨 뒤로 옮김
    for _ in range(k - 1):
        people.append(people.popleft())

    # k번째 사람을 제거하고 결과에 추가
    removed_person = people.popleft()
    result.append(removed_person)

print("<" + ", ".join(map(str, result)) + ">")

 

백준 / 문제 / 단계별로 풀어보기 / 16단계 스택, 큐, 덱

생각 :

# 1 2 3 4 5 6 7
# 4 5 6 7 1 2           3
# 7 1 2 4 5             3 6
# 4 5 7 1               3 6 2
# . . .
#                       3 6 2 7 5 1 4

# print("<" + ", ".join(map(str, result)) + ">")
# 여러 요소를 콤마로 구분하여 문자열로 만들기

 

반응형

'코딩 > 백준 (단계별)' 카테고리의 다른 글

백준 15439 파이썬  (21) 2024.05.08
백준 28279 파이썬 또 시간 초과  (23) 2024.05.07
백준 2164 파이썬  (1) 2024.05.05
백준 18258 파이썬 sys.stdout.write('\n'.join(result))  (1) 2024.05.04
백준 12789 파이썬  (1) 2024.05.03