[백준] 수들의 합 2 (2003)(kotlin)
문제 설명
입력 및 출력
» 입력
첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다.
» 출력
첫째 줄에 경우의 수를 출력한다.
예제 입출력(테스트케이스)
입력 | 출력 |
---|---|
4 2 1 1 1 1 |
3 |
10 5 1 2 3 4 2 5 3 1 1 2 |
3 |
문제 풀이1
fun main(args: Array<String>) = with(System.`in`.bufferedReader()) {
val (n, m) = readLine().split(" ").map { it.toInt() }
val arr = readLine().split(" ").map { it.toInt() }
var count = 0
var s = 0
var e = 0
var sum = 0
while (true) {
if (sum >= m)
sum -= arr[s++]
else if (e == n)
break
else
sum += arr[e++]
if (sum == m)
count++
}
println(count)
}