[8/16] 11866 (요세푸스 문제 0)

이경준·2021년 8월 16일
0

코테

목록 보기
81/140
post-custom-banner

실버4 문제

내 코드

n, k = map(int, input().split())
arr = list(range(1, n+1))
answer = []

cnt = 0
while arr:
    
    for i in range(1, k+1):
        
        if ( cnt > len(arr)- 1 ):
            cnt = 0
        
        if (i == k):
            answer.append(arr[cnt])
            del arr[cnt]
        else:
            cnt = cnt + 1
            
print('<', end="")
for k in range(len(answer)):
    
    if (k == (len(answer)- 1) ):
        print(answer[k], end=">")
    
    else:
        print(answer[k], end=", ")

풀이

(그냥 아무렇게나 구현해서 풀었다)
1. 리스트가 남아있을 때까지 while 반복문을 돌린다.
2. for문을 k번 만큼 돌린다.
- cnt를 1씩 추가시켜주는데, i가 k면 해당 인덱스 숫자를 answer에 추가하고 리스트에서 삭제한다.


효율적인 코드

피드백

profile
The Show Must Go On
post-custom-banner

0개의 댓글