KimMinJun
Coding Note
KimMinJun
전체 방문자
오늘
어제
  • 분류 전체보기 (486)
    • ALGORITHM (11)
      • 정렬 (6)
      • 최단경로 (1)
      • 자료구조 (1)
      • 슬라이딩 윈도우 (1)
      • etc (2)
    • Git (5)
    • Web (24)
      • Vanilla JS (13)
      • TS (2)
      • React (7)
      • ETC (1)
    • React 공식문서 (번역, 공부) (11)
      • Quick Start (2)
      • Installation (0)
      • Describing the UI (9)
      • Adding Interactivity (0)
      • Managing State (0)
      • Escape Hatches (0)
    • Next.js 공식문서 (번역, 공부) (3)
      • Getting Started (2)
      • Building Your Application (1)
    • PS (431)
      • 백준 (187)
      • Programmers (104)
      • CodeUp (21)
      • STL (3)
      • 제코베 JS 100제 (50)
      • SWEA (0)
      • LeetCode (65)
    • IT (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 관리

공지사항

인기 글

태그

  • Level 0
  • tree
  • 정렬
  • Level 1
  • codeup
  • 수학
  • 다이나믹 프로그래밍
  • C++
  • 제코베 JS 100제
  • C
  • 문자열
  • LeetCode
  • programmers
  • Level 2
  • 그래프
  • js
  • 백준
  • recursion
  • Level1
  • string

최근 댓글

최근 글

hELLO · Designed By 정상우.
KimMinJun

Coding Note

PS/백준

백준 / 누적 합 / 11659번 / 구간 합 구하기 4 / JS

2023. 1. 16. 12:24

< 문제 바로가기 >

 

11659번: 구간 합 구하기 4

첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다. 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다. 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j

www.acmicpc.net

 

const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : '../input.txt';
// const filePath = process.platform === 'linux' ? '/dev/stdin' : 'BOJ/input.txt';
const input = fs.readFileSync(filePath).toString().trim().split('\n');

const [N, M] = input.shift().split(' ').map(Number);
const NUMBER_LIST = input.shift().split(' ').map(Number);
const PART_LIST = input.map(el => el.split(' ').map(Number));

function solution() {
  let result = [];
  let accumulationList = Array.from({ length: NUMBER_LIST.length + 1 }, () => 0);

  NUMBER_LIST.forEach((el, idx) => {
    accumulationList[idx + 1] = accumulationList[idx] + el;
  });

  for(const [START, END] of PART_LIST) {
    result.push(accumulationList[END] - accumulationList[START - 1]);
  }

  console.log(result.join('\n'));
}

solution();

사실 로직은 맞았는데 계속 시간초과가 떠서 의아해했던 문제이다.

서칭해본 결과 JS의 console.log가 여러번 반복되어서 시간초과가 났다.

그래서 result 배열에 모든 output 결과값을 push 해준 후에, 마지막에 개행문자로 join해서 한번에 출력해주었다.

저작자표시 (새창열림)

'PS > 백준' 카테고리의 다른 글

백준 / 스택 / 4949번 / 균형잡힌 세상 / JS  (0) 2023.02.04
백준 / 투 포인터 / 2470번 / 두 용액 / JS  (2) 2023.02.02
백준 / 이분 탐색 / 16401번 / 과자 나눠주기 / JS  (0) 2022.11.17
백준 / 그래프 - DFS / 13565번 / 침투 / JS  (0) 2022.11.16
    'PS/백준' 카테고리의 다른 글
    • 백준 / 스택 / 4949번 / 균형잡힌 세상 / JS
    • 백준 / 투 포인터 / 2470번 / 두 용액 / JS
    • 백준 / 이분 탐색 / 16401번 / 과자 나눠주기 / JS
    • 백준 / 그래프 - DFS / 13565번 / 침투 / JS
    KimMinJun
    KimMinJun

    티스토리툴바