공주 구하기

bkboy·2022년 5월 19일
0

문제

제한 사항

입출력 예

풀이

function solution(n, k) {
  let answer;
  let queue = Array.from({ length: n }, (v, i) => i + 1);
  while (queue.length) {
    for (let i = 1; i < k; i++) queue.push(queue.shift());
    queue.shift();
    if (queue.length === 1) answer = queue.shift();
  }
  return answer;
}

console.log(solution(8, 3));

function solution2(n, k) {
  let answer;
  let queue = new Array(n).fill(0).map((e, i) => (e = i + 1));
  console.log(queue);
  let count = 0;
  while (queue.length !== 1) {
    count++;
    if (count === k) {
      count = 0;
      queue.shift();
    } else {
      queue.push(queue.shift());
    }
  }
  answer = queue[0];
  return answer;
}

console.log(solution2(8, 3));
  • 백준 요세푸스 문제와 같은 문제이다.
  • queue를 활용한 대표적인 문제이다.
profile
음악하는 개발자

0개의 댓글