1158 : 요세푸스 문제

서희찬·2021년 11월 30일
0

백준

목록 보기
78/105

문제

코드

n,k = map(int,input().split())
arr = [i for i in range(1,n+1)] #사람들 

result = []
idx=0 #인덱스 값으로 제거 

for i in range(n):
    idx+=k-1 #인덱스로제거
    if idx>= len(arr):
        idx%=len(arr) 
    result.append(str(arr.pop(idx)))#idx번째숫자를 팝  str변형 


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

해설

움,,, 간단한 문제이다
근양!
arr로 사람들을 초기화 해주고
idx 변수를 생성해준 후 이 인덱스를 이용해서 사람들을 제거 해 나가는데 배열의 길이보다 길어지는 케이스가 발생하는 경우 나머지연산을 사용해서 Idx를 초기화시켜주면된다.

그리고 출력할때는 join친구와 함께..!

profile
부족한 실력을 엉덩이 힘으로 채워나가는 개발자 서희찬입니다 :)

0개의 댓글