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)

블로그 메뉴

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

공지사항

인기 글

태그

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

최근 댓글

최근 글

hELLO · Designed By 정상우.
KimMinJun
PS/백준

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

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

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.