코깽이의 코딩일기

Python 백준 11866 - 요세푸스 문제 0 본문

PS/백준

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

코깽이 2023. 7. 26. 11:39
반응형

백준 링크

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

 

11866번: 요세푸스 문제 0

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

www.acmicpc.net

 

문제

입력

출력

입출력 예시

제출한 코드

# 빠른 입력을 위한 sys 사용
import sys

input = sys.stdin.readline

n, k = map(int, input().split())
# 인덱스에 접근할 변수
count = 0
# n의 크기의 리스트 생성
people = [i for i in range(1, n+1)]
# 결과를 저장할 리스트
result = []

# 요세푸스 순열 시작
while people:
   
    count += k - 1
   
    if count >= len(people):
        count %= len(people)
   
    result.append(str(people.pop(count)))

print("<", ", ".join(result), ">", sep="")

이전에 해결했던 문제들과 비슷하게 리스트에 제거하면서 값을 0으로 변경하고 해결하는 방식을 시도했더니 k번째 접근하는 부분에서 0의 값도 k번안에 포함이 되어버려서 제대로 결과 값이 나오지 않았다. 그래서 pop함수로 리스트에서 제거를 하고 결과에 바로 저장하는 형식으로 코드를 작성하니 문제없이 해결이 가능했다.

반응형

'PS > 백준' 카테고리의 다른 글

Python 백준 1436 - 영화감독 숌  (0) 2023.09.27
Python 백준 23971- ZOAC 4  (1) 2023.09.14
Python 백준 2839 - 설탕 배달  (0) 2023.09.01
Python 백준 15829 - Hashing  (0) 2023.07.24
Python 백준 10989번 - 수 정렬하기 3  (0) 2023.07.20