본문 바로가기
코딩테스트

[Python] 백준 - 제로

by 박매트 2024. 5. 21.

https://www.acmicpc.net/problem/10773

 

구현문제 

n = int(input())

li = []

for i in range(n):
    n = int(input())

    if n!= 0:
        li.append(n)

    else:
        li.pop()

print(sum(li))

 

소요 시간이 굉장히 오래걸렸다... 이렇게 푸는 게 맞는 듯 하다.

 

알아야 할 것. 스택일 시에

list.append(요소) : push

list.pop() : pop 맨 나중에 들어온 아이 꺼내기

 

 

Kotlin 으로 풀어보기

import java.util.*

fun main() {
    val scanner = Scanner(System.`in`)
    val n = scanner.nextInt()
    
    val li = mutableListOf<Int>()
    
    for (i in 0 until n) {
        val number = scanner.nextInt()
        
        if (number != 0) {
            li.add(number)
        } else {
            if (li.isNotEmpty()) {
                li.removeAt(li.lastIndex)
            }
        }
    }
    
    println(li.sum())
}

 

Kotlin에서 스택 구현 방법

 

리스트.add(요소)

리스트.removeAt (인덱스 ) -> 맨 마지막에 있는 거 빼는 거이므로.. li.lastIndex == 마지막 인덱스