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

2024. 11. 20. 16:30·코딩테스트/BAEKJOON
728x90
반응형

✏️ 문제유형: 구현/ 큐

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

 

 

✏️ 풀이 

N명 중에서 K번째 사람을 계속해서 제거하는 문제이다. 

 

위의 예제로 이해를 해보면, 7명 중 3번째 사람을 계속 제거한다. 

 

앞에서 2명 pop-push하고 3번째 사람은 pop만 반복하면 되는데, 큐의 동작을 간단히 나열해보면 아래와 같다. 

 

1 2 3 4 5 6 7
pop-push: 1 2 / only pop: 3 
4 5 6 7 1 2 
pop-push: 4 5 / only pop: 6 
7 1 2 4 5
pop-push: 7 1 / only pop: 2
4 5 7 1 ... 반복 

 

이를 코드로 나타내면 아래와 같다. 

from collections import deque
n, k = map(int, input().split())
q = deque([i for i in range(1, n+1)])
ans = []
while q:
    for i in range(k-1):
        v = q.popleft()
        q.append(v)
    ans.append(q.popleft())
print("<", end='')
for i in range(n):
    if i < n-1:
        print(ans[i], end=', ')
    if i == n-1:
        print(ans[i], end='')
print(">")

 

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'코딩테스트 > BAEKJOON' 카테고리의 다른 글

[백준/Python] 15652. N과 M (4)  (1) 2024.11.20
[백준/Python] 1874. 스택 수열  (1) 2024.11.19
[백준/Python] 11403. 경로 찾기  (1) 2024.11.19
[백준/Python] 14940. 쉬운 최단거리  (1) 2024.11.19
[백준/Python] 1463. 1로 만들기  (1) 2024.11.18
'코딩테스트/BAEKJOON' 카테고리의 다른 글
  • [백준/Python] 15652. N과 M (4)
  • [백준/Python] 1874. 스택 수열
  • [백준/Python] 11403. 경로 찾기
  • [백준/Python] 14940. 쉬운 최단거리
heeya16
heeya16
개발 공부 냠냠
  • heeya16
    개발자 희야
    heeya16
  • 전체
    오늘
    어제
    • 분류 전체보기 (105)
      • 코딩테스트 (66)
        • 프로그래머스 (38)
        • SWEA (2)
        • BAEKJOON (26)
      • 알고리즘 (7)
      • 자료구조 (19)
      • 프로젝트 (5)
      • 취업 주르륵 (2)
      • 데이터베이스 (0)
      • IT지식 (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    1003
    10448
    10773
    10월
    10진수
    11047
    11399
    11403
    11866
    1449
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
heeya16
[백준/Python] 11866. 요세푸스 문제 0
상단으로

티스토리툴바