Uknow's Lab.
article thumbnail

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()이라는 리스트 내 원소의 합을 구할 수 있는 편의 기능을 제공하는 것을 보고

감탄했던 기억이 나네요.

profile

Uknow's Lab.

@유노 Uknow

인생은 Byte와 Double 사이 Char다. 아무말이나 해봤습니다.