2022. 11. 3. 11:47γAlgorithm
λ°±μ€ - ν¬κ² λ§λ€κΈ°(Swift)
λ¬Έμ μ€λͺ
https://www.acmicpc.net/problem/2812
λμ νμ΄
μ²μμλ ν° μ«μκ° μμ μμ΄μΌνλ€λ κ²μ μμκΈ°μ ν¬ ν¬μΈν°λ‘ μ΄μ©ν΄μ λ¬Έμ λ₯Ό νμλ€. νμ§λ§ 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())
νΌλλ°±
μ€ν μλ£κ΅¬μ‘°λ₯Ό μ μκ°νμ§ λͺ»νλ μΆλ€.. μ’ λ μ μ°νκ² μκ°νλ λ₯λ ₯μ κΈΈλ¬μΌκ² λ€.
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ°±μ€ - μΌμ(Swift) (0) | 2022.11.04 |
---|---|
λ°±μ€ - 곡ν(Swift) (0) | 2022.11.03 |
λ°±μ€ - λΉ΅μ§(Swift) (0) | 2022.11.01 |
κ²μμ λ§λ λμ€μ΄ (0) | 2022.10.31 |
λ°±μ€ - λ³λ λμ΄νΈ(Swift) (0) | 2022.10.31 |