반응형
Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

undefined

[백준] 2559 수열 - Node/js 본문

Coding Test

[백준] 2559 수열 - Node/js

JavaScripter 2022. 7. 29. 08:15
반응형

문제 설명

 

2559번: 수열

첫째 줄에는 두 개의 정수 N과 K가 한 개의 공백을 사이에 두고 순서대로 주어진다. 첫 번째 정수 N은 온도를 측정한 전체 날짜의 수이다. N은 2 이상 100,000 이하이다. 두 번째 정수 K는 합을 구하기

www.acmicpc.net


문제 풀이

const readline = require('readline');
const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout,
});

let input = [];
let count = 0;
let day = 0;
let n = 0;

rl.on('line', function (line) {
  if (!count) {
    n = +line.split(' ')[0];
    day = +line.split(' ')[1];
  } else {
    input = line.split(' ').map(e => +e);
  }
  count++;
}).on('close', function () {
  solution(input, day, n);
  process.exit();
});

const solution = (input, day, n) => {
  // i 와 sum 정의
  let i = 0;
  let sum = 0;
  // 처음부터 day 전 까지의 수를 한번만 더해줌 = sum 초기값 정의
  for (let k = 0; k < day; k++) {
    sum += input[k];
  }
  let max = sum;
  // for루프로 j= day / n까지 반복
  for (let j = day; j < n; j++) {
    // sum+=input[j] 뒤에걸 더해주고
    sum += input[j];
    // sum-=inpit[i++] 앞에걸 빼줌
    sum -= input[i++];
    // max값 배정
    max = Math.max(max, sum);
  }
  // max리턴
  console.log(max);
};

배운 점

반응형
Comments