문제 링크
https://www.acmicpc.net/problem/2003
2003번: 수들의 합 2
첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다.
www.acmicpc.net
풀이
const [N, M, ...arr] = require("fs").readFileSync("/dev/stdin").toString().trim().split(/\s/).map(v => +v);
let count = 0;
for (let i=0; i<N; i++) {
let sum = arr[i];
let idx = i;
while (sum < M && idx < N-1) {
idx++;
sum += arr[idx];
}
if (sum === M) count++;
}
console.log(count);
수열을 순회하면서 인접한 수열의 합이 M 이상이 될 때까지 계속 더한 값이 정확히 M일 때에만 count를 증가시켰다.
'연습장 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[백준 10974] 모든 순열 with Node.js (0) | 2021.05.25 |
---|---|
[백준 1012] 유기농 배추 with Python (0) | 2021.05.25 |
[백준 11047] 동전 0 with Python (0) | 2021.05.24 |
[백준 1260] DFS와 BFS with Python (0) | 2021.05.24 |
[백준 2847] 게임을 만든 동준이 with Node.js (0) | 2021.05.22 |