백준1158 - 요세푸스 문제 (queue) JS 본문
반응형
https://www.acmicpc.net/problem/1158
해당 문제는 특정 번째 사람을 제거하는 식으로 진행되므로,
선입선출 방식을 적용할 수 있는 queue 자료 구조로 문제를 해결하면 된다.
이 문제의 풀이는 배열로 queue를 구현하여 적용했다.
const fs = require('fs')
const input = fs.readFileSync(process.platform === "linux" ? "/dev/stdin":"입력.txt")
.toString().trim()
function solution(data) {
const [N,K] = data.split(' ').map(Number)
const queue = Array.from({length : N}, (_,idx)=> idx + 1)
const result = []
let idx = 0
while(queue.length) {
const shift = queue.shift()
// K = 3일 시, idx % K가 2면 3번째 순서마다가 된다
idx++ % K === K - 1
? result.push(shift)
: queue.push(shift)
}
console.log(`<${result.join(', ')}>`)
}
solution(input)
반응형
'개발 > algorithm' 카테고리의 다른 글
백준1149 - RGB거리 (DP) JS (1) | 2023.09.26 |
---|---|
백준14501 - 퇴사(DP) JS (0) | 2023.09.25 |
백준2292 - 벌집 JS (0) | 2023.09.23 |
백준9324 - 진짜메시지 JS (0) | 2023.09.22 |
백준1063 - 킹 JS (1) | 2023.09.21 |
Comments