728x90
반응형
구간 합 구하기
https://www.acmicpc.net/problem/11659
문제
수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오.
자바
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
// (1). 개수를 입력받기 위해 생성
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer stringTokenizer = new StringTokenizer(bufferedReader.readLine());
// (2). 숫자 개수, 문제의 개수 변수를 생성하여 저장
int num = Integer.parseInt(stringTokenizer.nextToken());
int quNum = Integer.parseInt(stringTokenizer.nextToken());
// (3). 구간 합 배열 생성
long[] S = new long[num +1];
// stringTokenizer 를 초기화 해주어야 함 -> 안해주면 런타임 에러(NoSuchElement) 발생
stringTokenizer = new StringTokenizer(bufferedReader.readLine());
// (4). 숫자 개수만큼 반복 ( 구간 합 공식 : S[i] = S[i-1] + A[i]
for (int i = 1; i <= num; i++) {
S[i] = S[i-1] + Integer.parseInt(stringTokenizer.nextToken());
}
// (5). 문제의 개수만큼 반복
for (int q = 0; q < quNum; q++) {
stringTokenizer = new StringTokenizer(bufferedReader.readLine());
int i = Integer.parseInt(stringTokenizer.nextToken());
int j = Integer.parseInt(stringTokenizer.nextToken());
System.out.println(S[j] - S[i-1]);
}
}
}
코틀린
import java.io.BufferedReader
import java.io.InputStreamReader
import java.util.StringTokenizer
fun main() {
// (1)
val bufferedReader = BufferedReader(InputStreamReader(System.`in`))
var stringTokenizer = StringTokenizer(bufferedReader.readLine(), " ")
// (2)
val num = stringTokenizer.nextToken().toInt()
val quNum = stringTokenizer.nextToken().toInt()
// (3)
val S = LongArray(num+1)
stringTokenizer = StringTokenizer(bufferedReader.readLine(), " ")
// (4)
for (i in 1 .. num) {
S[i] = S[i-1] + stringTokenizer.nextToken().toInt()
}
// (5)
for (q in 0 until quNum) {
stringTokenizer = StringTokenizer(bufferedReader.readLine(), " ")
val i = stringTokenizer.nextToken().toInt()
val j = stringTokenizer.nextToken().toInt()
println(S[j] - S[i-1])
}
}
728x90
반응형
'Kotlin > Kotlin Algorithm' 카테고리의 다른 글
[Kotlin] 시간 복잡도(Time Complexity) (0) | 2023.03.22 |
---|---|
[Kotlin] 자료 구조와 알고리즘의 이해 (0) | 2023.03.02 |
[백준] 1546. 평균 ( Kotlin, Java ) (0) | 2023.02.22 |
[백준] 11720. 숫자의 합 구하기 ( Kotlin, Java ) (0) | 2023.02.21 |
[Kotlin] Sorting - 삽입 정렬(Insertion Sort) (0) | 2022.03.30 |