코딩테스트/Kotlin
[백준 10773번] [Kotlin] 제로
유노 Uknow
2022. 12. 26. 14:33
https://www.acmicpc.net/problem/10773
10773번: 제로
첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경
www.acmicpc.net
난이도 : 실버 4
태그 : 구현, 자료 구조, 스택
설명
ArrayList를 사용하면 쉽게 풀 수 있습니다.
0이 아닌 수가 입력으로 들어올 때엔 ArrayList에 하나씩 삽입하다가,
0이 입력으로 들어오면 ArrayList에서 마지막 원소를 빼고,
모든 입력이 들어오면 ArrayList 안에 남아있는 원소의 합을 출력하면 됩니다.
소스코드
fun main() {
val case = readLine()!!.toInt()
var array = ArrayList<Int>()
for(i in 0 until case) {
val read = readLine()!!.toInt()
if(read == 0){
array.removeLast()
} else {
array.add(read)
}
}
print(array.sum())
}
후기
1년전 코틀린을 처음 공부할 때 풀었던 문제였습니다.
코틀린에서는 ArrayList.sum()이라는 리스트 내 원소의 합을 구할 수 있는 편의 기능을 제공하는 것을 보고
감탄했던 기억이 나네요.