반응형
[백준 11659번] 구간 합 구하기 4 - Kotlin
https://www.acmicpc.net/problem/11659
문제
- 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오
입력
- 첫째 줄에 수의 개수 N과 합을 구해야 하는 횟수 M이 주어진다.
- 둘째 줄에는 N개의 수가 주어진다. 수는 1,000보다 작거나 같은 자연수이다.
- 셋째 줄부터 M개의 줄에는 합을 구해야 하는 구간 i와 j가 주어진다
출력
- 총 M개의 줄에 입력으로 주어진 i번째 수부터 j번째 수까지 합을 출력한다
풀이
private class Solution11659(nums: IntArray) {
private var dp: IntArray = IntArray(nums.size + 1)
init {
for (i in 1 until dp.size) {
dp[i] = dp[i - 1] + nums[i - 1]
}
}
fun solution(i: Int, j: Int): Int = dp[j] - dp[i - 1]
}
private fun main() {
val br = System.`in`.bufferedReader()
val bw = System.out.bufferedWriter()
val (n, m) = br.readLine().split(" ").map(String::toInt)
val nums = br.readLine().split(" ").map(String::toInt).toIntArray()
val solution11659 = Solution11659(nums)
repeat(m) {
val (i, j) = br.readLine().split(" ").map(String::toInt)
bw.append("${solution11659.solution(i, j)}\n")
}
bw.flush()
br.close()
bw.close()
}
반응형
'Software > 백준' 카테고리의 다른 글
[백준 1238번] 파티 - Kotlin (0) | 2024.05.12 |
---|---|
[백준 10844번] 쉬운 계단 수 - Kotlin (0) | 2024.05.12 |
[백준 4949번] 균형잡힌 세상 - Kotlin (0) | 2024.05.12 |
[백준 2156번] 포도주 시식 - Kotlin (0) | 2024.05.12 |
[백준 2225번] 합분해 - Kotlin (0) | 2024.05.12 |