[๋ฐฑ์ค] ๐ฅ 11659 ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 4
๐ ๋์ด๋
๐ฅ Silver 3
๐ ๋ฌธ์
https://www.acmicpc.net/problem/11659
๐ ํ์ด
์ฒ์ ์ด ๋ฌธ์ ๋ฅผ ๋ดค์ ๋๋ ๋๋ฌด๋๋ ๊ฐ๋จํ ๋ฌธ์ ๊ฐ ์ ์ค๋ฒ3์ผ๊น? ๋ผ๋ ์๊ฐ์ด ์ ๋ก ๋ค์๋ค.
ํ์ง๋ง ๋ง์ ์ด ๋ฌธ์ ๋ฅผ ํ์ด๋ณด๋, ์๊ฐ์ด๊ณผ๊ฐ ๋ด๋ค.
ํ์ง๋ง ๋ด๊ฐ ์๋ ๊ทธ ์ด๋ ํ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ด ์๊ฐ์ด๊ณผ๋ฅผ ํด๊ฒฐํ ์๊ฐ ์์๋ค.
๊ทธ๋์ ๋์ ํฉ(Prefix Sum)์ด๋ผ๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด์ ๊ณต๋ถํด๋ณด์๋ค.
๊ณต๋ถ๋ฅผ ํด๋ณด๋๊น ๋งค์ฐ ์ ๋ฐํ ๋ฐฉ๋ฒ์ด์๋ค.
์ซ์๋ฅผ ๋ฐ์๋, ๋ฏธ๋ฆฌ ์ซ์๋ค์ ๋ํด์ ๋์ ํฉ์ ๋ํ ๋ฐฐ์ด์ ๋ง๋ค์ด ๋๊ณ , ๊ฐ๋จํ๊ฒ start - end
๋ฅผ ํตํด์ ์ฌ๋ฌ๋ฒ์ ๊ณ์ฐ์์ด ๋ต์ ๊ตฌํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ด์๋ค.
์ด๋ฏธ ์์ฑํ ์ฝ๋์์ ์กฐ๊ธ๋ง ์์ ๋ณด๋, ๋งค์ฐ ๋นจ๋ผ์ง ์๊ณ ๋ฆฌ์ฆ์ด ๋์๋ค.
์ด๋ฐ ์๊ณ ๋ฆฌ์ฆ๊ฐ์ ๊ฒฝ์ฐ๋ ์ฝ์ง๋ง, ๋ชจ๋ฅด๋ฉด ์ ๋ ๋ชปํธ๋ ๋ฌธ์ ์ด๋ฏ๋ก ์์ง๋ ๊ณต๋ถํ ๊ฒ์ด ๋ง์ด ๋จ์๋ค๋ ์๊ฐ์ด ๋๋ ๋ฌธ์ ์๋ค.
๐ Code
package PS;
import java.io.*;
import java.util.*;
public class N11659_NS {
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];
arr[0] = 0;
st = new StringTokenizer(br.readLine());
for (int i = 1; i < N + 1; i++) {
arr[i] = Integer.parseInt(st.nextToken()) + arr[i - 1];
}
int result;
for (int i = 0; i < M; i++) {
result = 0;
st = new StringTokenizer(br.readLine());
int start = Integer.parseInt(st.nextToken());
int end = Integer.parseInt(st.nextToken());
System.out.println(arr[end] - arr[start - 1]);
}
}
}
package (์ด๋ฆ); ๋ฅผ ๋๊ณ , class ์ด๋ฆ์ Main
์ผ๋ก ๋ณ๊ฒฝํ๋ฉด ๋๋ค.
๊ฐ์ธ ๊ณต๋ถ ๊ธฐ๋ก์ฉ ๋ธ๋ก๊ทธ์
๋๋ค.
ํ๋ฆฌ๊ฑฐ๋ ์ค๋ฅ๊ฐ ์์ ๊ฒฝ์ฐ ์ ๋ณดํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.๐