728x90
1. 문제
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 |
댓글