λ°±μ€ - ν¬κ² λ§λ€κΈ°(Swift)
λ°±μ€ - ν¬κ² λ§λ€κΈ°(Swift)
λ¬Έμ μ€λͺ
https://www.acmicpc.net/problem/2812
2812λ²: ν¬κ² λ§λ€κΈ°
Nμ리 μ«μκ° μ£Όμ΄μ‘μ λ, μ¬κΈ°μ μ«μ Kκ°λ₯Ό μ§μμ μ»μ μ μλ κ°μ₯ ν° μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
www.acmicpc.net
λμ νμ΄
μ²μμλ ν° μ«μκ° μμ μμ΄μΌνλ€λ κ²μ μμκΈ°μ ν¬ ν¬μΈν°λ‘ μ΄μ©ν΄μ λ¬Έμ λ₯Ό νμλ€. νμ§λ§ 500,000μΈ μνμμ ν¬ ν¬μΈν°λ₯Ό κ³μ μμΌλ‘ 리μ νλ©΄μ λ리λ κ²μ λ§λμλλ μκ°λ³΅μ‘λλ₯Ό κ²°κ³Όλ‘ λ΄λλλ€.
μ΄ λλ¬Έμ λ€λ₯Έ νμ΄λ₯Ό μ°Έκ³ νλ€κ° μ€νμ μ¬μ©νλ κ²μ μκ²λμλ€.
μ€νμ΄λΌλ μΆκ°μ μΈ μλ£κ΅¬μ‘°λ₯Ό μ¬μ©ν¨μΌλ‘μ¨ μλ‘ λ€μ΄μ€λ κ°μ λν΄μλ λ§μ§λ§κ°κ³Ό λΉκ΅νλ λ‘μ§μ λ΄μ μ μκ² λμλ€.
(κΈ°μ‘΄μ ν¬ ν¬μΈν°λ νλ² μ«μλ₯Ό λΉΌλ©΄ μ²μλΆν° λ€μ μμνκΈ°μ μκ°μ΄κ³Όκ° λμλ€.)
λ§μ§λ§μ 0..<kμ λν΄μ λ μ κ±°νλ μ΄μ λ λ€μκ°μ΄ λ ν° κ°μ μμΌλ©΄μ μ κ±°λ₯Ό ν΄μΌν λμ΄κΈ° λλ¬Έμ 맨 λ§μ§λ§μ΄ μ μΌ μμ μ«μμ΄λ―λ‘ μ§μ°λ κ²μ΄λ€.
import Foundation
let input = readLine()!.components(separatedBy:" ").map{Int($0)!}
let n = input[0]
var k = input[1]
var arr = readLine()!.map{Int(String($0))!}
var stack: [Int] = []
for x in arr {
while k > 0 && !stack.isEmpty && stack.last! < x {
stack.removeLast()
k -= 1
}
stack.append(x)
}
(0..<k).forEach { _ in
stack.removeLast()
}
print(stack.map{String($0)}.joined())
νΌλλ°±
μ€ν μλ£κ΅¬μ‘°λ₯Ό μ μκ°νμ§ λͺ»νλ μΆλ€.. μ’ λ μ μ°νκ² μκ°νλ λ₯λ ₯μ κΈΈλ¬μΌκ² λ€.