๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”‘ ์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฐฑ์ค€ JS

[๋ฐฑ์ค€] node.js / 1158 ์š”์„ธํ‘ธ์Šค ๋ฌธ์ œ

by Tamii 2021. 10. 12.
๋ฐ˜์‘ํ˜•

์ฒ˜์Œ ํ’€์ด 

const fs = require('fs');

let input = (fs.readFileSync('./test') + '').toString().trim().split(' ');
let [n, k] = input.map((n) => parseInt(n));
let ansArr = [];
const arr = Array.from({ length: n }, (v, i) => i + 1);

for (let i = 0; i < n; i++) {
  for (let j = 1; j <= k; j++) {
    if (j === k) {
      ansArr.push(arr.shift());
    } else {
      arr.push(arr.shift());
    }
  }
}

const ans = '<' + ansArr.join(', ') + '>';
console.log(ans);

1.  n๊ฐœ์˜ ๋ฐฐ์—ด์„ ๋ˆ๋‹ค

2. ์ด์ค‘๋ฐฐ์—ด๋กœ k๋งŒํผ๋Œ์•„์„œ k๋ฒˆ์งธ์— ํ•ด๋‹นํ•˜์ง€ ์•Š์œผ๋ฉด ๋นผ์„œ ๋‹ค์‹œ ๋’ค์— ๋ถ™์—ฌ์ฃผ๊ณ 

3. ํ•ด๋‹นํ•˜๋ฉด ans ๋ฐฐ์—ด์— ๋„ฃ์–ด์ค€๋‹ค.

 

 

๊ฐœ์„  ํ’€์ด

const fs = require('fs');

let input = (fs.readFileSync('./test') + '').toString().trim().split(' ');
let [n, k] = input.map((n) => parseInt(n));
let ansArr = [];
const arr = Array.from({ length: n }, (v, i) => i + 1);

let cnt = 0;

while (arr.length > 0) {
  cnt = (cnt + k - 1) % arr.length;
  ansArr.push(arr[cnt]);
  arr.splice(cnt, 1);
}
const ans = '<' + ansArr.join(', ') + '>';
console.log(ans);

1. cnt์—  cnt+k (๋ฐฐ์—ด์ด๋‹ˆ๊นŒ-1) ์„  ๋ฐฐ์—ด๊ธธ์ด๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ’์„ ๋„ฃ์–ด์ค€๋‹ค.

2. ๋‹ต ๋ฐฐ์—ด์— push 

3. ํ•ด๋‹น๊ฐ’ ์ œ๊ฑฐ

 

 

 

 

๐Ÿฅณ ์‹œ๊ฐ„์„ ํ›จ์”ฌ ์ ˆ์•ฝํ•  ์ˆ˜์žˆ๋”ฐ!!

 

๋Œ“๊ธ€