알고리즘/백준

[boj 1158] 요세푸스 문제 -js

jinux127 2022. 3. 9. 13:28
// 요세푸스 문제
const filePath = process.platform === "linux" ? "/dev/stdin" : "input.txt";
const input = require('fs').readFileSync(filePath).toString().trim().split(/\s/).map(Number);

const N = input.shift();
const K = input.shift();

const sol = (N,K) =>{
    const arr = new Array(N);
    const result =[];
    for(let i =1; i<=N;i++){
        arr[i-1] = i;
    }
    while(arr.length){
        for(let i=0; i<K; i++){
            arr.push(arr.shift());
        }
        result.push(arr.pop());
        
    }
    console.log(`<${result.join(', ')}>`)

}

sol(N,K);

처음엔 값을 옮길 배열을 생성했지만 생각해보니 바로 팝하고 푸시하는 방법으로 수정했따~