100세까지 코딩
[do it 알고리즘] 백준 11659 (구간 합 구하기) 본문
문제 설명
풀기 전 생각
- 배운 대로 구간 합 공식을 사용
- 인덱스는 0부터 시작하지만 구간은 1부터 시작하므로 [N+1] 배열 선언
- 구간 합 배열은 S [1]부터 채워 나가기
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Baek11659 {
public static void main(String[] args) throws IOException {
BufferedReader bf =
new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine());
int N = Integer.parseInt(st.nextToken());
int M = Integer.parseInt(st.nextToken());
long[] S = new long[N + 1];
st = new StringTokenizer(bf.readLine());
for(int i = 1; i <= N; i++) {
S[i] = S[i-1] + Integer.parseInt(st.nextToken());
}
for(int k =0; k < M; k++) {
st = new StringTokenizer(bf.readLine());
int start = Integer.parseInt(st.nextToken());
int end = Integer.parseInt(st.nextToken());
System.out.println(S[end] - S[start-1]);
}
}
}
오류 및 개선
- 처음에 Scanner로 입력을 받았지만 코테는 속도가 중요
- BufferedReader와 StringTokenizer 사용에 익숙해지기
- StringTokenizer 오류가 계속 발생
- 인텔리제이 2022.1.03 버전의 문제였고 최신버전으로 새로 설치
참고
구간 합 알고리즘!!
'코딩테스트 > 자바' 카테고리의 다른 글
[do it 알고리즘] 백준 1940 (투 포인터2) (0) | 2023.09.24 |
---|---|
[do it 알고리즘] 백준 2018 (투 포인터) (0) | 2023.09.24 |
[do it 알고리즘] 백준 1546 (배열과 리스트) (0) | 2023.09.19 |
[do it 알고리즘] 백준 11720 (배열과 리스트) (0) | 2023.09.17 |
[프로그래머스] Lv0.전국 대회 선발 고사 (0) | 2023.09.01 |