PS/백준

[백준] 11866 요세푸스 문제0

HUN 2021. 2. 22. 16:56


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

 

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

 

인덱스는 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