MUKER_DEV with iOS

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

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/programmers

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

MUKER 2023. 4. 17. 17:39
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


์„ฑ๊ณต ํ’€์ด

func solution(_ numbers:[Int]) -> [Int] {
    var stack = [Int]()
    var result = Array(repeating: 0, count: numbers.count)
    for i in (0..<numbers.count).reversed() {
        while !stack.isEmpty && stack.last! <= numbers[i] { stack.removeLast() }
        stack.isEmpty ? (result[i] = -1) : (result[i] = stack.last!)
        stack.append(numbers[i])
    }
    return result
}

ํ’€์ด ํ‚ค์›Œ๋“œ

์Šคํƒ

์˜ˆ์‹œ)
์ž…๋ ฅ๊ฐ’: [9, 1, 5, 3, 6, 2]

ํ•ด๋‹น for๋ฌธ์„ ๋๋‚ผ ๋•Œ ๋งˆ๋‹ค ์Šคํƒ๊ณผ result๋ฐฐ์—ด์˜ ์ƒํƒœ
for i in (0..<numbers.count).reversed() {

์Šคํƒ์˜ ์ƒํƒœ:            [2]
result ๋ฐฐ์—ด์˜ ์ƒํƒœ: [0,0,0,0,0,-1]

์Šคํƒ์˜ ์ƒํƒœ:            [6]
result ๋ฐฐ์—ด์˜ ์ƒํƒœ: [0,0,0,0,-1,-1]

์Šคํƒ์˜ ์ƒํƒœ:            [6,3]
result ๋ฐฐ์—ด์˜ ์ƒํƒœ: [0,0,0,6,-1,-1]

์Šคํƒ์˜ ์ƒํƒœ:            [6,5]
result ๋ฐฐ์—ด์˜ ์ƒํƒœ: [0,0,6,6,-1,-1]

์Šคํƒ์˜ ์ƒํƒœ:            [6,5,1]
result ๋ฐฐ์—ด์˜ ์ƒํƒœ: [0,5,6,6,-1,-1]

์Šคํƒ์˜ ์ƒํƒœ:            []
result ๋ฐฐ์—ด์˜ ์ƒํƒœ: [-1,5,6,6,-1,-1]

์ถœ๋ ฅ: [-1,5,6,6,-1,-1]