λ¬Έμ μ€λͺ
μ μλ₯Ό μ μ₯νλ μ€νμ ꡬνν λ€μ, μ λ ₯μΌλ‘ μ£Όμ΄μ§λ λͺ λ Ήμ μ²λ¦¬νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
λͺ λ Ήμ μ΄ λ€μ― κ°μ§μ΄λ€.
- push X: μ μ Xλ₯Ό μ€νμ λ£λ μ°μ°μ΄λ€.
- pop: μ€νμμ κ°μ₯ μμ μλ μ μλ₯Ό λΉΌκ³ , κ·Έ μλ₯Ό μΆλ ₯νλ€. λ§μ½ μ€νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
- size: μ€νμ λ€μ΄μλ μ μμ κ°μλ₯Ό μΆλ ₯νλ€.
- empty: μ€νμ΄ λΉμ΄μμΌλ©΄ 1, μλλ©΄ 0μ μΆλ ₯νλ€.
- top: μ€νμ κ°μ₯ μμ μλ μ μλ₯Ό μΆλ ₯νλ€. λ§μ½ μ€νμ λ€μ΄μλ μ μκ° μλ κ²½μ°μλ -1μ μΆλ ₯νλ€.
μ λ ₯
첫째 μ€μ μ£Όμ΄μ§λ λͺ λ Ήμ μ N (1 ≤ N ≤ 10,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€λΆν° Nκ°μ μ€μλ λͺ λ Ήμ΄ νλμ© μ£Όμ΄μ§λ€. μ£Όμ΄μ§λ μ μλ 1λ³΄λ€ ν¬κ±°λ κ°κ³ , 100,000λ³΄λ€ μκ±°λ κ°λ€. λ¬Έμ μ λμμμ§ μμ λͺ λ Ήμ΄ μ£Όμ΄μ§λ κ²½μ°λ μλ€.
μΆλ ₯
μΆλ ₯ν΄μΌνλ λͺ λ Ήμ΄ μ£Όμ΄μ§ λλ§λ€, ν μ€μ νλμ© μΆλ ₯νλ€.
μ μΆλ ₯ μμ
μ λ ₯
14
push
1
push
2
top
size
empty
pop
pop
pop
size
empty
pop
push
3
empty
top
μΆλ ₯
2
2
0
2
1
-
1
0
1
-
1
0
3
λ΄ λ¬Έμ νμ΄
import Foundation
let count = Int(readLine()!)!
var stack = [Int]()
for _ in 0..<count {
let command = readLine()!.components(separatedBy: " ")
if command[0] == "push" { stack.append(Int(command[1])!) }
else if command[0] == "pop" {
if stack.isEmpty { print(-1) }
else { print(stack.removeLast()) }
}
else if command[0] == "size" { print(stack.count) }
else if command[0] == "empty" {
if stack.isEmpty { print(1) }
else { print(0) }
}
else if command[0] == "top" {
if stack.isEmpty { print(-1) }
else { print(stack[stack.count-1]) }
}
}
- μ€ν λ°°μ΄μ λ§λ€μ΄μ£Όμκ³ , 곡백μ κΈ°μ€μΌλ‘ μ€λ§λ€ μ λ ₯μ λ°μλ€.
- λͺ λ Ήμ΄λ³λ‘ ifλ¬ΈμΌλ‘ ꡬλΆνμ¬ λͺ λ Ήμ μννλ€.
- pop, empty, top λͺ λ Ήμ΄μ κ²½μ° isEmptyλ₯Ό μ¬μ©, λ°°μ΄μ΄ λΉμλ€λ©΄ -1μ μΆλ ₯νκ² ν΄μ£Όμλ€.
π‘ νΌλλ°±
- λ€λ₯Έ νμ΄λ₯Ό μκ°ν κ² μμ΄, λ¬Έμ κ·Έλλ‘ μ€νμ λ§λ€μ΄ νμ΄μ£Όλ©΄ λλ λ¬Έμ μκΈ° λλ¬Έμ κΈλ°© νμ΄ν μ μμλ€.
- swift ν¨μκ° μλμ΄μκΈ° λλ¬Έμ isEmptyλ append, removeLast λ±μ μ΄μ©ν΄ μ½κ² νμλ€.
λ¬Έμ
https://www.acmicpc.net/problem/10828
'3οΈβ£ Swift > Problem Solving' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Swift Algorithm] μ€ν μμ΄ BOJ #1874 (2) | 2021.08.04 |
---|---|
[Swift Algorithm] μ λ‘ BOJ #10773 (0) | 2021.08.04 |
[Swift Algorithm] μμΈνΈμ€ λ¬Έμ BOJ #1158 (0) | 2021.07.30 |
[Swift Algorithm] ν€λ‘κ±° BOJ #5397 (0) | 2021.07.30 |
[Swift Algorithm] μλν° BOJ #1406 (0) | 2021.07.30 |
λκΈ