본문 바로가기
코딩테스트 문제풀이/beakjoon

[백준] 1158 요세푸스 문제

by merona99 2021. 8. 20.
반응형

백준 1158번 요세푸스 문제

파이썬 / 자료구조 / 큐

 

 

 

 

[문제]

 

 

 

 

[과정]

 

  • 하나의 리스트를 생성하여 사람의 번호를 저장
  • 현재의 인덱스에서 k-1번째의 값을 pop하고 만약 data의 길이를 벗어나는 인덱스일경우 data의 길이만큼 나눠 줌

 

 

 

 

[소스코드]

 

# 요세푸스 문제

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

ans = []
num = 0
for i in range(n):
    num += k-1
    if num >= len(data):
        num = num % len(data)
    ans.append(str(data.pop(num)))
print('<', ", ".join(ans), '>', sep='')

 

 


 

 

 

[통과]

 

 

 

반응형

'코딩테스트 문제풀이 > beakjoon' 카테고리의 다른 글

[백준] 21608 상어 초등학교  (0) 2021.08.31
[백준] 18258 큐 2  (0) 2021.08.20
[백준] 14502 연구소  (0) 2021.08.16
[백준] 21921 블로그  (0) 2021.08.16
[백준] 11659 구간 합 구하기 4  (0) 2021.08.16

댓글