요깨비's LAB

[백준, 자료구조, Kotlin] P.1874 스택 수열 본문

알고리즘(Kotlin)/자료구조

[백준, 자료구조, Kotlin] P.1874 스택 수열

요깨비 2021. 6. 1. 21:23

import java.util.*

fun main() {
    val stack = Stack<Int>()

    val scr = Scanner(System.`in`)
    val n = scr.nextInt()
    val list = mutableListOf<Int>()
    val result = mutableListOf<Int>()
    var index = 0
    val sb = StringBuffer()

    for(i in 1 .. n) {
        list.add(scr.nextInt())
    }

    for(i in 1 .. n) {
        stack.add(i)
        sb.append("+\n")

        while(!stack.isEmpty() && stack.peek() == list[index]) {
            result.add(stack.pop())
            sb.append("-\n")
            index++
        }
    }

    if(result == list) {
        print(sb.toString())
    }else {
        println("NO")
    }
}

 

문제 제목 그대로 스택을 활용해서 풀면 간단하게 풀 수 있습니다. 

Comments