https://www.acmicpc.net/problem/1158
원형 큐
를 생각해서 문제를 풀었다.Array.from
을 사용하여 편하게 작성하였다.const fs = require('fs');
const stdin = (process.platform === 'linux' ? fs.readFileSync('/dev/stdin').toString().trim() : `7 3`).split('\n');
const input = (() => {
let line = 0;
return () => stdin[line++];
})();
const [N, K] = input().split(' ').map(Number);
const personCds = Array.from(Array(N), (value, idx) => idx + 1);
const answer = [];
while (personCds.length) {
for (let i = 0; i < K; i++) {
personCds.push(personCds.shift());
}
answer.push(personCds.pop());
}
console.log(`<${answer.join(', ')}>`);
사실 오늘 푼 문제는 전에 풀었었던 문제이다.
예전에 풀었던 1부터 N까지 초기화하는 방식은 이렇게 했었다.
for (let i = 1; i <= N; i++) {
queue.push(i);
}
하지만 Array.from으로 이렇게 작성할 수 있었다는 것을 알고 적용해보았다!
const personCds = Array.from(Array(N), (value, idx) => idx + 1);
다음에도 바로 적용해서 풀 수 있기를!🙏🏻