최종 제출 코드
n, k = map(int, input().split())
arr = [i+1 for i in range(n)]
result = []
while len(arr) != 0:
result.append(str(arr[(k-1)%len(arr)]))
arr = arr[(k-1)%len(arr)+1:] + arr[:(k-1)%len(arr)]
result = "<" + ", ".join(result) + ">"
print(result)
.
◼ 인덱스 슬라이스를 활용하여 문제 풀이
k번째 원소를 result 배열에 넣고, arr를 그 원소의 바로 뒤에 있는 원소부터 앞에 있는 원소까지 포함하는 배열로 수정. 그림으로 설명하면 아래와 같다.
k번째 원소를 구하는 식만 세우면 arr 업데이트 가능arr[k-1] 원소가 k번째 원소이지만, arr의 길이가 k보다 작을 때는 적용 불가능. arr의 길이를 고려해주어야 한다.arr[(k-1)%len(arr)] 원소가 k번째 원소이다.arr[(k-1)%len(arr)+1:], a에 해당하는 부분은 arr[:(k-1)%len(arr)]이다.arr[(k-1)%len(arr)+1:] + arr[:(k-1)%len(arr)]가 업데이트 되는 배열이다.