๋ฐฑ์ค ๋ฌธ์ ๋ชจ์
๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/10866
10866๋ฒ: ๋ฑ
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช ๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง
www.acmicpc.net
๋ฌธ์
์ ์๋ฅผ ์ ์ฅํ๋ ๋ฑ(Deque)๋ฅผ ๊ตฌํํ ๋ค์, ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋ช
๋ น์ ์ฒ๋ฆฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๋ช
๋ น์ ์ด ์ฌ๋ ๊ฐ์ง์ด๋ค.
- push_front X: ์ ์ X๋ฅผ ๋ฑ์ ์์ ๋ฃ๋๋ค.
- push_back X: ์ ์ X๋ฅผ ๋ฑ์ ๋ค์ ๋ฃ๋๋ค.
- pop_front: ๋ฑ์ ๊ฐ์ฅ ์์ ์๋ ์๋ฅผ ๋นผ๊ณ , ๊ทธ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ, ๋ฑ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
- pop_back: ๋ฑ์ ๊ฐ์ฅ ๋ค์ ์๋ ์๋ฅผ ๋นผ๊ณ , ๊ทธ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ, ๋ฑ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
- size: ๋ฑ์ ๋ค์ด์๋ ์ ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
- empty: ๋ฑ์ด ๋น์ด์์ผ๋ฉด 1์, ์๋๋ฉด 0์ ์ถ๋ ฅํ๋ค.
- front: ๋ฑ์ ๊ฐ์ฅ ์์ ์๋ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ๋ฑ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
- back: ๋ฑ์ ๊ฐ์ฅ ๋ค์ ์๋ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ๋ฑ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช ๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง ์์ ๋ช ๋ น์ด ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ๋ ์๋ค.
์ถ๋ ฅ
์ถ๋ ฅํด์ผํ๋ ๋ช ๋ น์ด ์ฃผ์ด์ง ๋๋ง๋ค, ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
์ ์ถ๋ ฅ ์์
์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ
- ์๋ฃ ๊ตฌ์กฐ
- ๋ฑ
๋ฌธ์ ํ์ด
- ๋ช ๋ น์ ์ n์ ์ ๋ ฅ๋ฐ๊ณ , ์ ์ํ ๋ฐฐ์ด deque๋ฅผ ์ ์ธํ๋ค.
- 0๋ถํฐ n๊น์ง ๋ฐ๋ณต๋ฌธ์ ์คํํ๋ฉฐ ๊ฐ ๋ช ๋ น์ ์ ๋ ฅ๋ฐ๋๋ค.
- switch๋ฌธ์ ์ฌ์ฉํด ๊ฐ ๋ช ๋ น์ ๋ฐ๋ฅธ ๋์์ ์ ์ ํ๋ค.
์์ค์ฝ๋
let n = Int(readLine()!)!
var deque = [Int]()
for _ in 0..<n{
let input = readLine()!.split(separator: " ").map{String($0)}
switch input[0] {
case "push_front":
deque.insert(Int(input[1])!, at: 0)
case "push_back":
deque.append(Int(input[1])!)
case "pop_front":
print(deque.isEmpty ? "\(-1)" : "\(deque.removeFirst())")
case "pop_back":
print(deque.isEmpty ? "\(-1)" : "\(deque.removeLast())")
case "size":
print(deque.count)
case "empty":
print(deque.isEmpty ? "\(1)" : "\(0)")
case "front":
print(deque.isEmpty ? "\(-1)" : "\(deque[0])")
case "back":
print(deque.isEmpty ? "\(-1)" : "\(deque.last!)")
default:
break
}
}
- 24ms
'โจ๏ธ Language > swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ๋ฐฑ์ค 1966๋ฒ - ํ๋ฆฐํฐ ํ (0) | 2023.03.24 |
---|---|
[Swift] ๋ฐฑ์ค 1935๋ฒ - ํ์ ํ๊ธฐ์2 (0) | 2023.03.23 |
[Swift] ๋ฐฑ์ค 2164๋ฒ - ์นด๋2 (0) | 2023.03.21 |
[Swift] ๋ฐฑ์ค 1158๋ฒ - ์์ธํธ์ค ๋ฌธ์ (0) | 2023.03.20 |
[Swift] ๋ฐฑ์ค 18258๋ฒ - ํ 2 (0) | 2023.03.20 |