๐Ÿ’ก๋ฌธ์ œ ๋ถ„์„ ์š”์•ฝ

๐Ÿ’ก์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ค๊ณ„

๐Ÿ’ก์ฝ”๋“œ


const fs = require('fs');
const path = require('path');

const input = fs.readFileSync(path.join(__dirname, 'input.txt')).toString().trim().split(' ');

// ์ž…๋ ฅ๊ฐ’์„ ์ˆซ์ž๋กœ ๋ณ€ํ™˜
const n = parseInt(input[0], 10); // ์ด ์ธ์›
const k = parseInt(input[1], 10); // ์ œ๊ฑฐํ•  ์‚ฌ๋žŒ์˜ ์ˆœ์„œ

function solution(n, k) {
  const queue = []; // ์ด ์ธ์› ๋ฐฐ์—ด
  const answer = []; // ์ œ๊ฑฐ ์ˆœ์„œ ๋ฐฐ์—ด

  // ์ด ์ธ์›์„ ์ด ์ธ์› ๋ฐฐ์—ด์— ๋„ฃ์Œ
  for (let i = 1; i <= n; i++) {
    queue.push(i);
  }

  // ์ œ๊ฑฐ ์ˆœ์„œ ์นด์šดํ„ฐ
  let count = 1;

  while (queue.length) {
    const shiftItem = queue.shift(); 
    // ํ์—์„œ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๊บผ๋ƒ„

    if (count % k === 0) {
      // ํ˜„์žฌ ์นด์šดํ„ฐ === ์ œ๊ฑฐ ์ˆœ์„œ๋ผ๋ฉด 

      answer.push(shiftItem);
      //  k๋ฒˆ์งธ ์‚ฌ๋žŒ์„ ์ œ๊ฑฐ ์ˆœ์„œ ๋ฐฐ์—ด์— ์ถ”๊ฐ€
    } else {
      queue.push(shiftItem); 
      // k๋ฒˆ์งธ๊ฐ€ ์•„๋‹Œ ์‚ฌ๋žŒ์€ ๋‹ค์‹œ ์ด ์ธ์› ๋ฐฐ์—ด์˜ ๋์— ์ถ”๊ฐ€
    }

    count++;
    // ์นด์šดํ„ฐ ์ฆ๊ฐ€
  }

  // ํ˜•์‹๋Œ€๋กœ ์ถœ๋ ฅ
  console.log(`<${answer.join(', ')}>`);
}

// ๋ฌธ์ œ ํ’€์ด ํ•จ์ˆ˜ ์‹คํ–‰
solution(n, k);

๐Ÿ’ก์‹œ๊ฐ„๋ณต์žก๋„