๋ฌธ์
https://programmers.co.kr/learn/courses/30/lessons/42628
๋ด ๋ฌธ์ ํ์ด
func solution(_ operations:[String]) -> [Int] {
var queue = [Int]()
for i in operations {
let command = i.split(separator: " ").map({String($0)})
if command[0] == "I" { queue.append(Int(command[1])!) }
else if command[0] == "D" && !queue.isEmpty {
if command[1].contains("-") { queue.sort(by: >); queue.removeLast() }
else { queue.sort(); queue.removeLast() }
}
}
return queue.isEmpty ? [0, 0] : [queue.max()!, queue.min()!]
}
๐Heap ๋ฌธ์ !
- queue ๋ผ๋ ๋ฐฐ์ด์ ์์ฑํ๊ณ ๊ฐ ๋ช ๋ น์ ๋ง๊ฒ ๋ฐฐ์ด์ ์์ ํ์.
- I ๋ช ๋ น์ด์ ๊ฒฝ์ฐ์๋ ๋ฐ๋ก queue ๋ฐฐ์ด์ ๋ง์ง๋ง์ ๊ฐ์ ์ฝ์ ํ์์.
- D ๋ช
๋ น์ด์ ๊ฒฝ์ฐ์๋ queue ๋ฐฐ์ด์ด ๋น์ด์์ง๋ ์์์ง ํ์ธ ํ ๋ช
๋ น์ ์คํํ๊ฒ ํจ.
์ซ์์ "-"๊ฐ ๋ถ์ด์๋ ๊ฒฝ์ฐ ์ต์๊ฐ์ ์ญ์ ํด์ผํ๋ฏ๋ก queue ๋ฐฐ์ด์ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ ํ removeLast ํ์.
๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ์๋ ์ต๋๊ฐ์ ์ญ์ ํด์ผํ๋ฏ๋ก queue ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ ํ removeLasrt ํ์.
(removeFirst๋ฅผ ํ๋ ๊ฒ์ ํผํ๊ธฐ ์ํ์ฌ ์์ ๊ฐ์ด ์ ๋ ฌํ์์.)
๐ก ํผ๋๋ฐฑ
- ๋ ๋ฒจ 3 ์น๊ณ ๋ ๊ต์ฅํ ์ฌ์ด ๋ฌธ์ ์๊ณ , removeFirst๋ง ํผํด์ฃผ๋ฉด ๊ฐ๋จํ๊ฒ ํ์ด ๊ฐ๋ฅํ์.
'3๏ธโฃ Swift > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift Algorithm] ์ ๋ก์์ฝ BOJ #10026 (0) | 2022.01.23 |
---|---|
[Swift Algorithm] ํ ํธ๋ก๋ฏธ๋ ธ BOJ #14500 (2) | 2022.01.19 |
[Swift Algorithm] ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 4 BOJ #11659 (2) | 2021.10.20 |
[Swift Algorithm] 2รn ํ์ผ๋ง BOJ #11726 (0) | 2021.10.20 |
[Swift Algorithm] RGB๊ฑฐ๋ฆฌ BOJ #1149 (0) | 2021.10.20 |
๋๊ธ