const fs = require('fs');
const [n, k] = fs.readFileSync("/dev/stdin").toString().trim().split(' ').map(Number)
const solution = (n, k) => {
let arr = new Array(n).fill(0)
arr.forEach((el, i) => arr[i] = (arr[i-1] || 0) + 1)
let i = -1
let count = 0
let result = []
while(result.length !== n){
i++
count++
if(count % k === 0){
result.push(arr[i])
arr.splice(i,1)
i--
}
if(i === arr.length-1){
i = -1
}
}
return '<' + result.join(', ') + '>'
}
console.log(solution(n, k))
let arr = new Array(n).fill(0)
arr.forEach((el, i) => arr[i] = (arr[i-1] || 0) + 1)
arr의 인덱스 i
, k의 배수마다 사람을 제거해야하므로 한사람씩 셀 때마다 증가시키는 count
, 제거한 사람을 차례로 넣을 배열 result
를 선언한다.
count
가 k의 배수이면 arr에서 해당 사람을 result
로 push()하고 splice()로 제거하고 i
를 -1 시킨다.
i
가 arr의 마지막 인덱스가 되면 다시 처음 인덱스로 설정한다.
i, count, result, arr