-
11866 요세푸스 문제(파이썬)백준 문제풀이 2022. 8. 24. 15:34

import sys from collections import deque q=deque() result=[] n,k=map(int,sys.stdin.readline().split()) for i in range(n): q.append(i+1) # 1부터 n까지 덱 생성 while(len(result)<n): for j in range(k): #k개의 요소를 맨 뒤로 보냄 data=q.popleft() q.append(data) data=q.pop() # 마지막 요소는 지우고 result에 할당 result.append(data) print("<", end='') for i in result: if(i!=result[-1]): #가장 끝 요소를 출력할때는 ,와 공백을 출력하지 않음 print(i, end=', ') else: print(i, end='') print(">")만약 7 3 일때
1 2 3 4 5 6 7
4 5 6 7 1 2 (3)
7 1 2 4 5 (6)
4 5 7 1 (2)
1 4 5 (7)
1 4 (5)
4 (1)
(1)
이런식으로 k개의 요소를 뒤로보내고 맨 마지막 요소는 지우고 result에 할당하는 방식을 이용하였다.
'백준 문제풀이' 카테고리의 다른 글
BOJ 14889 스타티와 링크(JS) (0) 2023.05.20 1966 프린터 큐(파이썬) (0) 2022.08.28 백준 1874 스택 수열(파이썬) (0) 2022.08.23 백준 4949 균형잡힌 세상(파이썬) (0) 2022.08.23 백준 2447 별 찍기 -10(파이썬) (0) 2022.08.19