[알고리즘-JS, Python] 백준 2018번: 연속된 자연수의 합 (투 포인터)
어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한다. 이때, 사용하는 자연수는 N이하여야 한다. 예를 들어, 15를 나타내는 방법은 15, 7+8, 4+5+6, 1+2+3+4+5의 4가지가 있다. 반면에 10을 나타내는 방법은 10, 1+2+3+4의 2가지가 있다. N을 입력받아 가지수를 출력하는 프로그램을 작성하시오. 풀이 JavaScript const n = parseInt(require('fs').readFileSync("input.txt").toString().trim(), 10); let count = 1; // 가장 마지막 수만 뽑는..
Data Structure & Algorithm
2024. 3. 17. 20:29
[알고리즘-JS] 투 포인터 - 연속 부분 수열 합이 M 이하인 경우
문제 N개의 숫자로 이루어진 수열이 있습니다. 연속 부분 수열의 합이 M 이하가 되는 경우가 몇 번인지 출력하시오. 입력 예제 6 4 1 3 1 1 2 1 출력 예제 13 풀이 function solution(n, m, a) { let answer = lt = rt = sum = 0; for (let rt = 0; rt m) { sum -= a[lt++]; } answer += (rt - lt + 1); } return answer; }
Data Structure & Algorithm
2022. 5. 3. 22:04