๐Ÿ“ ์ฝ”ํ…Œ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[Swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค154539 ๋’ค์— ์žˆ๋Š” ํฐ ์ˆ˜ ์ฐพ๊ธฐ

JerryiOS 2023. 5. 13. 12:01

import Foundation

func solution(_ numbers: [Int]) -> [Int] {
    var stack = [Int]()
    var res = Array(repeating: -1, count: numbers.count)

    for i in 0..<numbers.count {
        while !stack.isEmpty && numbers[stack.last!] < numbers[i] {
            res[stack.removeLast()] = numbers[i]
        }
        stack.append(i)
    }

    return res
}

O(N)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋กœ ํ’€์–ด์•ผ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์ง€ ์•Š๋Š”๋‹ค.

์ˆœํšŒ๋ฅผ ํ•œ๋ฒˆ๋งŒ ํ•˜๊ธฐ ์œ„ํ•ด stack์„ ์ด์šฉํ•œ๋‹ค.

๋ฐ˜์‘ํ˜•