반응형
안녕하세요. 개발 중인 정주입니다.
오늘은 백준 BOJ - 10828 스택 문제를 풀었습니다.
목차
Github
GitHub - jeongju9216/SwiftAlgorithm: 스위프트 알고리즘
스위프트 알고리즘. Contribute to jeongju9216/SwiftAlgorithm development by creating an account on GitHub.
github.com
문제 링크
https://www.acmicpc.net/problem/10828
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
풀이
해당 문제는 스택의 기본 개념을 묻는 질문입니다.
push, pop, top, empty, size를 구현하면 됩니다.
하나하나 메서드로 구현할까 고민했지만 굳이 그럴 필요는 없을 것 같아 switch문으로 해결했습니다.
전체 코드
//10828 스택
import Foundation
let loopCount = Int(readLine()!)!
var stack: [Int] = []
for _ in 0..<loopCount {
let command = readLine()!.split(separator: " ").map { String($0) }
switch command.first! {
case "push":
stack.append(Int(command.last!)!)
case "pop":
let pop = stack.popLast() ?? -1
print(pop)
case "size":
print(stack.count)
case "empty":
print(stack.isEmpty ? "1" : "0")
case "top":
let top = stack.last ?? -1
print(top)
default: break
}
}
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형