선릉역 1번 출구

baekjoon - 11866 본문

Algorithm/Algorithm 문제풀이

baekjoon - 11866

choideu 2021. 10. 3. 12:35

백준 11866 - 요세푸스 문제0

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

 

11866번: 요세푸스 문제 0

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

www.acmicpc.net

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

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

pointer = 0 //삭제할 index를 가리키는 변수로 0부터 시작
cnt = 1 // k번을 카운트하는 변수 
while circle:
    if cnt % k == 0: //k번째 수라면
        pointer = pointer % len(circle) //포인터가 size를 넘어가면 circle의 size로 나눴을 때의 나머지가 가리키는 수가 됨
        remove_circle.append(circle[pointer])
        del circle[pointer]
        cnt = 0 //다시 0으로 초기화
        pointer -= 1
    pointer += 1
    cnt += 1

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

'Algorithm > Algorithm 문제풀이' 카테고리의 다른 글

baekjoon - 1931  (0) 2021.10.03
baekjoon - 2605  (0) 2021.10.03
baekjoon - 2161  (0) 2021.10.03
baekjoon - 15886  (0) 2021.10.03
baekjoon - 14467  (0) 2021.10.03
Comments