[문제]
https://www.acmicpc.net/problem/10828
[코드]
import java.io.*
import java.util.*
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val n = StringTokenizer(br.readLine()).nextToken().toInt()
val stack = Stack<String>()
for(i in 0 until n) {
val st = StringTokenizer(br.readLine())
val cmd = st.nextToken()
when (cmd) {
"pop" -> {
bw.write("${if(stack.empty()) -1 else stack.pop()}\n")
}
"push" -> {
stack.push(st.nextToken())
}
"top" -> {
bw.write("${if(stack.empty()) -1 else stack.peek()}\n")
}
"size" -> {
bw.write("${stack.size}\n")
}
"empty" -> {
bw.write("${if(stack.empty()) 1 else 0}\n")
}
}
}
bw.flush()
bw.close()
}
[풀이]
스택을 활용한 기본문제.
Stack<>()을 이용하여 스택 자료구조를 이용할 수 있고 입력된 명령에 따라 기본적인 stack 연산을 해주면 된다.
이 때 pop()은 익히 알고 있는 스택의 기본 연산이고 peek()은 가장 마지막에 들어온 값을 꺼내지는 않고 가져만온다.
Github : https://github.com/eshc123/2021AlgorithmStudy/blob/main/src/main/PS/baekjoon/10828.kt
'Algorithm and PS > 백준(Kotlin)' 카테고리의 다른 글
백준 - 1874 스택 수열 (코틀린) (0) | 2021.05.26 |
---|---|
백준 - 10773 제로 (코틀린) (0) | 2021.05.24 |
백준 - 1406 에디터 (코틀린) (0) | 2021.05.23 |
백준 - 1919 애너그램 만들기 (코틀린) (0) | 2021.05.22 |
백준 - 1475 방 번호 (코틀린) (0) | 2021.05.19 |
댓글