구간 합

곽지욱·2024년 6월 18일

BOJ

목록 보기
64/69

백준 11659 : 구간 합 구하기4


public static void main(String[] args) throws IOException {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    StringTokenizer st = new StringTokenizer(br.readLine());
    int N = Integer.parseInt(st.nextToken());
    int M = Integer.parseInt(st.nextToken());
    int[] arr = new int[N + 1];
    StringBuilder sb = new StringBuilder();
    
    st = new StringTokenizer(br.readLine());
    arr[0] = 0; // 첫 번째 값은 0으로 초기화
    for(int i = 1; i <= N; i++) {
        arr[i] = arr[i - 1] + Integer.parseInt(st.nextToken());
    }
    
    for(int i = 0; i < M; i++) {
        st = new StringTokenizer(br.readLine());
        int start = Integer.parseInt(st.nextToken());
        int end = Integer.parseInt(st.nextToken());
        sb.append(arr[end] - arr[start - 1]).append("\n");
    }
    System.out.println(sb);
}
  • 첫 번째 값은 0으로 초기화를 한다. 1부터 시작해서 i-1 + nextToken()을 해줘야 하기 때문에

  • 배열 자체에 애초부터 구간의 합을 저장해야 시간초과가 되지 않음.

0개의 댓글