https://www.acmicpc.net/problem/10773
10773번: 제로
첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경
www.acmicpc.net
난이도 : 실버 4
태그 : 구현, 자료 구조, 스택
1. 설명
ArrayList를 사용하면 쉽게 풀 수 있습니다.
0이 아닌 수가 입력으로 들어올 때엔 ArrayList에 하나씩 삽입하다가,
0이 입력으로 들어오면 ArrayList에서 마지막 원소를 빼고,
모든 입력이 들어오면 ArrayList 안에 남아있는 원소의 합을 출력하면 됩니다.
2. 소스코드
<kotlin />
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())
}
3. 후기
1년전 코틀린을 처음 공부할 때 풀었던 문제였습니다.
코틀린에서는 ArrayList.sum()이라는 리스트 내 원소의 합을 구할 수 있는 편의 기능을 제공하는 것을 보고
감탄했던 기억이 나네요.
'코딩테스트 > Kotlin' 카테고리의 다른 글
[백준 11279번] [Kotlin] 최대 힙 (0) | 2023.01.15 |
---|---|
[백준 1927번] [Kotlin] 최소 힙 (0) | 2023.01.15 |
[백준 11399번] [Kotlin] ATM (0) | 2022.12.26 |
[백준 11653번] [Kotlin] 소인수분해 (0) | 2022.12.21 |
[백준 2563번] [Kotlin] 색종이 (0) | 2022.12.20 |