코딩테스트준비

[백준11659]구간 합 구하기

예쁜꽃이피었으면 2024. 1. 25. 13:34

https://www.acmicpc.net/problem/11659

 

11659번: 구간 합 구하기 4

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

www.acmicpc.net

 

* 구간 합을 알게되어서 한 번 적용해봤는데.. i값에 따라 분기처리를 하는게 맞는건지는 모르겠다. 일단 통과

 

import java.util.Arrays;
import java.util.Scanner;

public class backjoon11659 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int M = sc.nextInt();
		
		int[] Arr = new int[N];
		int[] sumArr = new int[N]; //합 배열
		
		for(int i = 0; i < N; i++) {
			Arr[i] = sc.nextInt();
			
			if(i == 0) {
				sumArr[i] = Arr[i];
			}else if(i > 0) {
				sumArr[i] = sumArr[i-1] + Arr[i]; 
			}
			
		}
//		System.out.println(Arrays.toString(Arr));
//		System.out.println(Arrays.toString(sumArr));
		
		int i,j;
		for(int k = 0; k < M; k++) {
			i = sc.nextInt()-1; //배열은 0부터 시작이니까 1씩 뺀다.
			j = sc.nextInt()-1; //배열은 0부터 시작이니까 1씩 뺀다.
			
			if(i-1 >= 0) {
				System.out.println(sumArr[j]-sumArr[i-1]);
			}else if(i-1 < 0) {
				System.out.println(sumArr[j]);
			}else if(i == j) {
				System.out.println(Arr[i]);
			}
			
		}

	}

}

 

 

 

 

 

 

 

 

 

 

반응형

'코딩테스트준비' 카테고리의 다른 글

[백준11660]구간 합 구하기2  (0) 2024.01.25
[백준1546]평균 구하기  (0) 2024.01.25
[백준11720]숫자의 합 구하기  (0) 2024.01.25
[백준2750]수 정렬하기  (0) 2024.01.25
백준 9012 자바  (0) 2020.09.19