백준 알고리즘 - 코틀린 풀이
https://www.acmicpc.net/problem/10773
10773번: 제로
첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경
www.acmicpc.net
1. 문제


2. 정답
<kotlin />
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())
}
3. 풀이
10773번 문제는 입력을 받는 도중 0이 입력으로 들어오면 마지막 값을 지우고, 0이 아닌 값이 들어오면 저장 시켜 누적합을 구하는 문제입니다.
배열의 인덱스를 다루는 문제라고 보시면 됩니다.
Integer 타입의 ArrayList를 생성합니다.
<kotlin />
val array = ArrayList<Int>()
만약 입력이 0이라면 배열의 lastIndex를 remove하고, 0이 아니라면 입력값을 add합니다.
<kotlin />
if(n == 0) {
array.removeLast()
} else {
array.add(n)
}
마지막으로 배열의 엘리먼트들의 합을 출력해주시면 됩니다.
<kotlin />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 |