[프로그래머스]뒤에 있는 큰 수 찾기

brick·2023년 2월 9일
0

코테

목록 보기
21/53
import Foundation

func solution(_ numbers:[Int]) -> [Int] {
    var answer: [Int] = Array(repeating: -1, count: numbers.count)
    var stack: [(Int, Int)] = []
    
    for (i, num) in numbers.enumerated() {
        if !stack.isEmpty {
            while !stack.isEmpty && stack.last!.1 < num {
                answer[stack.last!.0] = num
                stack.popLast()
            }
        }
        stack.append((i, num))
    }
    return answer
}

stack 사용해서 시간복잡도 단축

0개의 댓글