반응형
정답 풀이
const path = process.platform === "linux" ? "/dev/stdin" : "input.txt"; // 리눅스로 테스트할 땐 따로 설정해주어야 합니다.
const input = require("fs")
.readFileSync(path)
.toString()
.trim()
.split("\n")
.map(i => i.split(' ').map(Number));
function solution(input) {
/* input 정리 */
const [N, K, Q, M] = input[0];
const sleeps = input[1];
const students = input[2].filter(student => !sleeps.includes(student));
/* 문제 풀이 */
const preSum = [0, 0, 0];
for (let i = 3; i <= N + 2; i++) {
preSum[i] = preSum[i - 1];
if (sleeps.includes(i)) continue;
for (const student of students) {
if (i % student === 0) {
preSum[i] += 1;
break;
}
}
}
let answer = '';
for (let i = 3; i < M + 3; i++) {
const [S, E] = input[i];
answer += E - S + 1 - (preSum[E] - preSum[S - 1]) + '\n';
}
console.log(answer.substring(0, answer.length - 1));
}
solution(input);
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 16935번: 배열 돌리기 3 (JavaScript, NodeJS) (0) | 2022.06.16 |
---|---|
[백준] 15486번: 퇴사2 (JavaScript, NodeJS) (0) | 2022.02.13 |
[백준] 1106번: 호텔 (JavaScript, NodeJS) (0) | 2022.02.12 |
[백준] 9465번: 스티커 (JavaScript, NodeJS) (0) | 2022.02.11 |
[백준] 1890번: 점프 (JavaScript, NodeJS) (0) | 2022.02.10 |