[Swift] 백준 10828번 스택
문제 출처: 백준 10828번 스택
문제
풀이
명령어를 입력받아 조건에 맞게 출력을 해주면 되는 간단한 문제인데요. if 문으로도 풀 수 있지만 case 문을 통해 좀 더 가독성 있게 풀어봤습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/// 명령의 수
let N = Int(readLine()!)!
/// 스택 역할을 할 String배열
var stack: [String] = []
// N만큼 반복
for _ in 0..<N {
let line = readLine()!.split(separator: " ")
// 명령어에 따른 이벤트 처리
switch line[0] {
case "push":
stack.append(String(line[1]))
case "pop":
print(stack.popLast() ?? -1)
case "size":
print(stack.count)
case "empty":
print(stack.isEmpty ? 1 : 0)
case "top":
print(stack.last ?? -1)
default: break
}
}
- 명령의 수를 입력받습니다.
- 입력받은 명령의 수 만큼 반복문을 실행합니다.
- 명령어를 입력받아 case 문을 이용해 동작을 처리합니다.
popLast, last의 경우 해당 배열이 비어있을 경우 nil을 반환하기 때문에 삼항연잔사를 통해 값을 출력합니다.
이렇게 풀 경우 메모리: 69104 KB, 시간: 24 ms 결과가 나오게 됩니다.
댓글남기기