티스토리 뷰

반응형

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

 

11866번: 요세푸스 문제 0

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

www.acmicpc.net

 


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 구현
  • 자료 구조

 


 

⊙ 문제 접근 과정

 

우선 큐를 하나 만들어주어 거기에 1부터 N까지 수를 넣어준다.

 

그리고 입력받은 K가 되기 전까지 요소를 빼서 뒤로 넘겨주고, K가 되면 K를 result 배열에 넣어준다.

그렇게 q가 빌 때까지 반복한다.

 

그리고 형식에 맞추어서 출력만 해주면 된다.

 


 

⊙ 문제 풀이

 

from collections import deque

N, K = map(int, input().split())

q = deque()
result = []

for i in range(N):
    q.append(i+1)

while q:
    for i in range(K):
        if not i == K-1:
            temp = q.popleft()
            q.append(temp)
        else:
            temp = q.popleft()
            result.append(temp)

print("<", end="")
for i in range(len(result)):
    if not i == len(result)-1:
        print(result[i], end=", ")
    else:
        print(result[i], end="")
print(">")

 


⊙ 결과

 


⊙ 마무리

 

 

NONE

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
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 31
글 보관함