티스토리 뷰


요세푸스 순열을 구하는 문제이다.

 

요세푸스 순열을 구할때 유의해야할 점은 배열이 순환한다는 것이다. 이는 배열의 인덱스를 구할때 인덱스가 배열의 크기보다 큰 경우 

 

인덱스는 K-1만큼 커진다.

 

from sys import stdin
readline = stdin.readline

def get_ys_seq():
    idx = K - 1
    stack = [i+1 for i in range(N)]
    result = []

    for _ in range(N):
        if len(stack) <= idx:
            idx %= len(stack)

        result.append(stack.pop(idx))
        idx += K - 1

    return result 

if __name__ == "__main__":
    N, K = map(int, readline().split())
    print("<"+", ".join(list(map(str, get_ys_seq())))+">")
728x90

'PS > 백준' 카테고리의 다른 글

[백준] 1707 이분 그래프  (0) 2021.02.25
[백준] 1992 쿼드트리  (0) 2021.02.23
[백준] 2533 사회망 서비스  (0) 2021.02.15
[백준] 2098 외판원 순회  (0) 2021.02.15
[백준] 1937 욕심쟁이 판다  (0) 2021.02.10
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함