백준 알고리즘 - 코틀린 풀이
https://www.acmicpc.net/problem/10773
10773번: 제로
첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경
www.acmicpc.net
문제
정답
import java.io.BufferedReader
import java.io.InputStreamReader
fun main(): Unit = with(BufferedReader(InputStreamReader(System.`in`))) {
val input = readLine().toInt()
val array = ArrayList<Int>()
repeat(input) {
val n = readLine().toInt()
if(n == 0) {
array.removeLast()
} else {
array.add(n)
}
}
println(array.sum())
}
풀이
10773번 문제는 입력을 받는 도중 0이 입력으로 들어오면 마지막 값을 지우고, 0이 아닌 값이 들어오면 저장 시켜 누적합을 구하는 문제입니다.
배열의 인덱스를 다루는 문제라고 보시면 됩니다.
Integer 타입의 ArrayList를 생성합니다.
val array = ArrayList<Int>()
만약 입력이 0이라면 배열의 lastIndex를 remove하고, 0이 아니라면 입력값을 add합니다.
if(n == 0) {
array.removeLast()
} else {
array.add(n)
}
마지막으로 배열의 엘리먼트들의 합을 출력해주시면 됩니다.
println(array.sum())
감사합니다.
'백준 알고리즘' 카테고리의 다른 글
[백준] 약수(1037번) - 코틀린 풀이 (0) | 2023.10.11 |
---|---|
[백준] 삼각형과 세변(5073번) - 코틀린 풀이 (0) | 2023.10.06 |
[백준] 숫자 카드2(10816번) - 코틀린 풀이 (0) | 2023.10.04 |
[백준] 회사에 있는 사람(7785번) - 코틀린 풀이 (0) | 2023.09.26 |
[백준 알고리즘] 수학은 비대면(19532번) - 코틀린 풀이 (0) | 2023.09.26 |