본문 바로가기
개발 노트/백준, 프로그래머스 풀이

[백준 1158/c++] 요세푸스 문제

by tokkiC 2022. 8. 12.

c++ 만 풀다가 자바스크립트로 푸니 역시 불편하다

팔 다리 다 묶고 기억 리셋하고 처음부터 시작하는 느낌이다...

문제 자체는 인덱스 돌며 빼주기만 하면 되는 간단한 문제이다

https://www.acmicpc.net/problem/1158

 

1158번: 요세푸스 문제

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

www.acmicpc.net

let input;
let n;
let k;

const readline = require("readline").createInterface({
  input: process.stdin,
  output: process.stdout,
});

readline.on("line", (line) => {
  input = line.split(" ").map((el) => Number(el));
  readline.close();
});

readline.on("close", () => {
  n = input[0];
  k = input[1];
  solution(n, k);
  process.exit();
});

const solution = (n, k) => {
  let sum = k;
  const arr = [];
  const answer = [];

  for (let i = 1; i <= n; i++) {
    arr.push(i);
  }

  while (arr.length) {
    let index = (sum - 1) % arr.length;
    answer.push(arr.splice(index, 1));
    sum = index + k;
  }
  console.log(`<${answer.join(", ")}>`);
};

'개발 노트 > 백준, 프로그래머스 풀이' 카테고리의 다른 글

[백준 1629/javascript] 곱셈  (0) 2022.08.14
[백준 2164/javascript] 카드2  (0) 2022.08.13
[백준 4179/c++] 불!  (0) 2022.08.11
[백준 7569/c++] 토마토  (0) 2022.08.10
[백준 7576/c++] 토마토  (0) 2022.08.09

댓글