[백준 Gold 4] 부분합
1분 읽기
| 시간 제한 | 메모리 제한 |
|---|---|
| 0.5 초 | 128 MB |
풀이 1: 투 포인터
const [N, S, ...arr] = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split(/\s/)
.map(v => +v);
let left = 0;
let right = 0;
let sum = arr[0];
let min_len = Infinity;
while(left < arr.length && right < arr.length){
if(sum >= S){
min_len = Math.min(min_len, right - left + 1);
sum -= arr[left++];
} else {
sum += arr[++right];
}
}
// 만일 그러한 합을 만드는 것이 불가능하다면 0을 출력
console.log(min_len === Infinity ? 0 : min_len);Two Pointers7편 중 5번째
관련 글
4분 읽기
소수 구하기
소수 판별법과 소수를 구하는 알고리즘을 정리합니다.
1분 읽기
[프로그래머스 Level 2] 미로 탈출
프로그래머스 미로 탈출을 BFS로 풀이합니다.
1분 읽기
[프로그래머스 Level 2] 마법의 엘리베이터
프로그래머스 마법의 엘리베이터를 자리수 그리디로 풀이합니다.