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

풀이
Stack을 이용해 풀면 된다. 0을 입력받았을 때 pop()을 호출하고 아닐 때는 push()를 호출해준다. 입력이 끝나면 stack이 비워질 때 까지 pop()을 호출하며 sum 변수에 더해준다.
코드
import java.util.* fun main() { val br = System.`in`.bufferedReader() val bw = System.out.bufferedWriter() val case = br.readLine().toInt() val stack = Stack<Int>() repeat(case) { val num = br.readLine().toInt() if(num == 0) { stack.pop() } else { stack.add(num) } } var sum = 0 while (stack.isNotEmpty()) { sum += stack.pop() } bw.write("$sum") bw.flush() bw.close() br.close() }
'알고리즘 > Baekjoon' 카테고리의 다른 글
[백준] 10814번: 나이순 정렬 - Kotlin[코틀린] (0) | 2023.08.10 |
---|---|
[백준] 1149번: RGB거리 - Kotlin[코틀린] (0) | 2023.08.07 |
[백준] 2438 ~ 2446번: 별 찍기 - 1 ~ 9 - Kotlin[코틀린] (0) | 2023.08.05 |
[백준] 1012번: 유기농 배추 - Kotlin[코틀린] (0) | 2023.08.04 |
[백준] 11399번: ATM - Kotlin[코틀린] (0) | 2023.08.01 |