문제
왕은 왕자들을 나이 순으로 1번부터 N번까지 차례로 번호를 매긴다.
1번 왕자부터 N 번 왕자까지 순서대로 시계 방향으로 돌아가며 동그랗게 앉게 한다.
1번 왕자부터 시 계방향으로 돌아가며 1부터 시작하여 번호를 외치게 한다.
한 왕자가 K(특정숫자)를 외치면 그 왕자는 공주를 구하러 가는데서 제외되고 원 밖으로 나오게 된다.
다음 왕자부터 다시 1부터 시작하여 번호를 외친다.
N과 K가 주어질 때 공주를 구하러 갈 왕자의 번호를 출력
풀이 과정
const solutionA = (N, K) => {
const queue = Array.from({ length: N }, (_, i) => i + 1);
while (queue.length !== 1) {
for (let i = 0; i < K - 1; i++) queue.push(queue.shift());
queue.shift();
}
return queue[0];
};
const testA = solutionA(8, 3);
console.log(testA);
틀린 부분이 있거나 보충해야 할 내용이 있다면 댓글이나 DM(sungstonemin)으로 알려주시면 감사하겠습니다😄