완전 탐색도 가능하겠지만
구간합으로 수의 조합을 찾아 나가는 것은 투포인터를 생각하면 된다
투포인터 원리대로 포인터 두개로 움직여 끝나는 조건을 만들어 만들어주면 된다
[https://www.acmicpc.net/problem/2003
let input = [];
const readline = require("readline").createInterface({
input: process.stdin,
output: process.stdout,
});
readline.on("line", (line) => {
input.push(line);
});
readline.on("close", () => {
solution(input);
process.exit();
});
const solution = (inp) => {
let [n, m] = inp[0].split(" ").map((el) => Number(el));
let arr = inp[1].split(" ").map((el) => Number(el));
let cnt = 0;
let left = 0;
let right = 0;
let sum = 0;
while (true) {
if (sum >= m) {
sum -= arr[left++];
} else if (right === n) {
break;
} else {
sum += arr[right++];
}
if (sum === m) {
cnt++;
}
}
console.log(cnt);
};
'개발 노트 > 백준, 프로그래머스 풀이' 카테고리의 다른 글
[백준 11047/javascript] 동전 0 (0) | 2022.10.07 |
---|---|
[백준 1251/javascript] 단어 나누기 (0) | 2022.10.06 |
[백준 9872/javascript] Record Keeping (0) | 2022.10.03 |
[백준 1475/javascript] 방 번호 (0) | 2022.10.02 |
[백준 9655/javascript] 돌 게임 (0) | 2022.10.01 |
댓글