백준 : 요세푸스 문제 0 - 11866

2025. 10. 3. 02:01·알고리즘
반응형

입력

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

출력

예제와 같이 요세푸스 순열을 출력한다.

예제 입력 1 

7 3

예제 출력 1 

<3, 6, 2, 7, 5, 1, 4>

 

deque를 사용하면 다음과 같은 순서로 문제를 해결할 수 있다

  1. 큐 초기화: 1부터 N까지의 숫자를 deque에 순서대로 넣습니다. 이 숫자들이 사람을 나타냄
  2. K번째 사람 찾기: K번째 사람을 찾기 위해 K-1번 큐를 왼쪽으로 회전시킨다 (deque.rotate(-1)).
    • K번째 사람을 찾기 위해 K번 회전하는 것이 아니라 K-1번 회전하는 이유는, 회전 후 큐의 맨 앞에 있는 사람이 우리가 찾는 K번째 사람이 되기 때문이다.
  3. 사람 제거: 큐의 맨 앞에 있는 사람(popleft())을 제거하고, 그 제거된 사람을 결과 리스트에 추가한다.
  4. 반복: 큐에 사람이 없을 때까지 2~3번 과정을 반복한다.
from collections import deque

n, k = map(int, input().split())
result = []
queue = deque([i for i in range(1, n + 1)])

while queue:
    # k-1번 왼쪽으로 회전
    queue.rotate(-(k - 1))
    
    # 맨 앞에 있는 사람을 제거하고 결과 리스트에 추가
    result.append(queue.popleft())

print("<" + ", ".join(map(str, result)) + ">")
반응형

'알고리즘' 카테고리의 다른 글

백준 : 괄호 - 9012  (0) 2025.10.04
백준 : 좌표 정렬하기 - 11650  (0) 2025.10.04
백준 : 회전하는 큐 - 1021  (0) 2025.10.03
백준 : 미로 탐색 - 2178  (0) 2025.10.02
백준 : 특정 거리의 도시 찾기 - 18352  (0) 2025.10.01
'알고리즘' 카테고리의 다른 글
  • 백준 : 괄호 - 9012
  • 백준 : 좌표 정렬하기 - 11650
  • 백준 : 회전하는 큐 - 1021
  • 백준 : 미로 탐색 - 2178
Feel나는 대로 GI록하는 글
Feel나는 대로 GI록하는 글
세상을 위한 개발자가 되기 위하여
    반응형
  • Feel나는 대로 GI록하는 글
    FeelGI
    Feel나는 대로 GI록하는 글
  • 전체
    오늘
    어제
    • 분류 전체보기 (58)
      • ML & AI (3)
        • 논문 리뷰 (1)
        • Computer Vision (0)
        • Digital Image Processing (1)
      • 알고리즘 (46)
      • 프로그램(대회,공모전,프로그램) (2)
      • 도서 (0)
      • 필기록 (1)
        • 회고록 (0)
        • 끄적끄적 (1)
      • 취업 준비 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    ICT 학점연계 프로젝트 인턴십
    백준 토마토 7576
    스택 수열
    구현 #문자열 #백준 #python
    백준
    LG Aimers
    LG AI
    #코드트리 #코딩테스트 #코테공부 #코테준비 #알고리즘공부 #갭체크
    동적계획
    파이토치
    파이썬
    FizzBuzz
    DP #알고리즘 #백준 #Python
    14761
    28702
    코딩테스트
    코테
    백준 토마토
    IT대학생
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Feel나는 대로 GI록하는 글
백준 : 요세푸스 문제 0 - 11866
상단으로

티스토리툴바