728x90
1. 문제
11441번: 합 구하기
첫째 줄에 수의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄에는 A1, A2, ..., AN이 주어진다. (-1,000 ≤ Ai ≤ 1,000) 셋째 줄에는 구간의 개수 M이 주어진다. (1 ≤ M ≤ 100,000) 넷째 줄부터 M개의 줄에는
www.acmicpc.net
N개의 수 A1, A2, ..., AN이 입력으로 주어진다. 총 M개의 구간 i, j가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오.
2. 풀이
N+1칸 배열을 만들고 1부터 N번째 칸까지 이전값+입력값을 저장했다.
i이상 j이하 합을 구해야하므로 i를 입력받을 때 -1한다.
A[to]-A[from]을 출력한다.
public static void main(String[] args) throws Exception{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(in.readLine());
int[] A = new int[N+1];
st = new StringTokenizer(in.readLine());
for(int i=1;i<=N;i++) A[i] = A[i-1]+Integer.parseInt(st.nextToken());
int M = Integer.parseInt(in.readLine());
for(int i=0;i<M;i++){
st = new StringTokenizer(in.readLine());
int from = Integer.parseInt(st.nextToken())-1;
int to = Integer.parseInt(st.nextToken());
sb.append(A[to]-A[from]).append('\n');
}
System.out.print(sb);
}
3. 결과
'코딩테스트 > BOJ' 카테고리의 다른 글
[BOJ] 3954 Brainf**k 인터프리터 - JAVA (0) | 2022.04.15 |
---|---|
[BOJ] 9205 맥주 마시면서 걸어가기 - JAVA (0) | 2022.04.14 |
[BOJ] 1929 소수 구하기 - JAVA (0) | 2022.04.12 |
[BOJ] 14499 주사위 굴리기 - JAVA (0) | 2022.04.11 |
[BOJ] 5639 이진검색트리 - JAVA (0) | 2022.04.10 |
댓글