seunghyun Note

[백준] 11866번 : 요세푸스 문제 0 with JS 본문

코딩테스트/백준

[백준] 11866번 : 요세푸스 문제 0 with JS

승숭슝현 2024. 1. 24. 13:49

 

링크 : https://www.acmicpc.net/problem/11866

 

11866번: 요세푸스 문제 0

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)

www.acmicpc.net

문제 풀이

 

링크드리스트 공부를 하다가 이 문제를 보니 또 링크드리스트로 풀어야 하나..? 생각이 들었지만 아니었다.

배열을 사용해서 풀 수도 있다.

cnt를 넣어주고 cnt가 같을 때 ans에 Push, 아니면 arr에 push 해서 저장할 곳을 두 곳에 둔다.

const filePath = process.platform === "linux" ? "/dev/stdin" : "예제.txt";
let [N, K] = require("fs").readFileSync(filePath).toString().trim().split(" ");

let arr = [...new Array(parseInt(N))].map((_, i) => i + 1);
const ans = [];

let cnt = 1;
while (arr.length) {
  let data = arr.shift();
  if (cnt % K == 0) {
    ans.push(data);
  } else {
    arr.push(data);
  }
  cnt++;
}

console.log(`<${ans.join(", ")}>`);

 

728x90