문제
11441번: 합 구하기
첫째 줄에 수의 개수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄에는 A1, A2, ..., AN이 주어진다. (-1,000 ≤ Ai ≤ 1,000) 셋째 줄에는 구간의 개수 M이 주어진다. (1 ≤ M ≤ 100,000) 넷째 줄부터 M개의 줄에는
www.acmicpc.net
풀이
입력받은 수의 누적 합을 sum 배열에 저장한다. 구간 [x, y]의 합은 sum[y]에서 sum[x-1]을 빼면 구할 수 있다.
코드
fun main() {
val br = System.`in`.bufferedReader()
val bw = System.out.bufferedWriter()
val num = br.readLine().toInt()
val arr = br.readLine().split(' ').map { it.toInt() }
val sb = StringBuilder()
val sum = IntArray(num+1)
sum[0] = arr[0]
for(i in 0 until num) {
sum[i+1] = sum[i] + arr[i]
}
repeat(br.readLine().toInt()) {
val (start, end) = br.readLine().split(' ').map { it.toInt() }
sb.append("${sum[end] - sum[start-1]}\n")
}
bw.write(sb.toString())
bw.flush()
bw.close()
br.close()
}
'알고리즘 > Baekjoon' 카테고리의 다른 글
[백준] 2023번: 신기한 소수 - Kotlin[코틀린] (0) | 2024.04.17 |
---|---|
[백준] 15903번: 카드 합체 놀이 - Kotlin[코틀린] (0) | 2024.04.16 |
[백준] 11047번: 동전 0 - Kotlin[코틀린] (0) | 2024.04.01 |
[백준] 5052번: 전화번호 목록 - Kotlin[코틀린] (0) | 2024.03.27 |
[백준] 1913번: 달팽이 - Kotlin[코틀린] (0) | 2024.03.22 |