Where who wants to meet someone
백준 Swift [28278] 스택 2 본문
728x90
난이도
실버 IV
문제
https://www.acmicpc.net/problem/28278
내 답안
var customStack = [Int]()
func pushStack(what: Int) {
customStack.append(what)
}
func popStack() {
guard let lastElement = customStack.popLast() else {
print(-1)
return
}
print(lastElement)
}
func numberOfStack() {
print(customStack.count)
}
func currentStateOfStack() {
customStack.isEmpty ? print(1) : print(0)
}
func peekStack() {
guard let lastElement = customStack.last else {
print(-1)
return
}
print(lastElement)
}
for _ in 1...Int(readLine()!)! {
let input = readLine()!.split(separator: " ").map { Int($0)! }
switch input[0] {
case 1:
pushStack(what: input[1])
case 2:
popStack()
case 3:
numberOfStack()
case 4:
currentStateOfStack()
case 5: peekStack()
default:
break
}
}
- 빈 스택인 customStack 프로퍼티를 만들고, 각 기능에 해당하는 것을 메서드로 분리하여 만들었다.
- 입력값 input을 가지고 switch문을 돌려 각 케이스에 맞는 메서드를 수행하게 하여 해결하였다.
- 처음에 답이 틀려 이유를 생각해보니 pop과 peek에서 옵셔널 바인딩을 할 때 else 구문에 print문을 적어야 했는데 아래에 따로 하다보니 return에서 빠졌었다..
'백준 알고리즘 문제 기록 > 스택, 큐, 덱' 카테고리의 다른 글
백준 Swift [2164] 카드2 (0) | 2023.08.25 |
---|---|
백준 Swift [12789] 도키도키 간식드리미 (2) | 2023.08.24 |
백준 Swift [4949] 균형잡힌 세상 (0) | 2023.08.22 |
백준 Swift [9012] 괄호 (0) | 2023.08.22 |
백준 Swift [10773] 제로 (0) | 2023.08.22 |