11866 요세푸스 문제0

장종민·2023년 8월 30일

boj

목록 보기
20/22


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

circle = [i for i in range(1, n+1)]
p = []
cnt = 1

while len(circle) != 0:
    tmp = circle[0]
    circle.pop(0)
    if cnt % k == 0:
        p.append(tmp)
        pass
    else:
        circle.append(tmp)
    cnt += 1

print("<", end='')
print(*p, sep=', ', end='')
print(">")

front가 k번째 사람이 아니라면 맨뒤로 옮기고 (pop => append)
k번째 사람이라면 다른리스트로 옮긴다.


1158번 숏코딩 ver

n, k = map(int,input().split())
circle = [*range(1,n+1)]
p = []
i = 0
while circle:
    i = (i + k-1) % len(circle)
    p += [circle.pop(i)]
print('<' + str(p)[1:-1] + '>')


profile
비전공 오르미부트캠프 2기

0개의 댓글