๋ฐฑ์ค ๋ฌธ์ ๋ชจ์
๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/10828
10828๋ฒ: ์คํ
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช ๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง
www.acmicpc.net
๋ฌธ์
์ ์๋ฅผ ์ ์ฅํ๋ ์คํ์ ๊ตฌํํ ๋ค์, ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ฒ๋ฆฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๋ช ๋ น์ ์ด ๋ค์ฏ ๊ฐ์ง์ด๋ค.
- push X: ์ ์ X๋ฅผ ์คํ์ ๋ฃ๋ ์ฐ์ฐ์ด๋ค.
- pop: ์คํ์์ ๊ฐ์ฅ ์์ ์๋ ์ ์๋ฅผ ๋นผ๊ณ , ๊ทธ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ์คํ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
- size: ์คํ์ ๋ค์ด์๋ ์ ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
- empty: ์คํ์ด ๋น์ด์์ผ๋ฉด 1, ์๋๋ฉด 0์ ์ถ๋ ฅํ๋ค.
- top: ์คํ์ ๊ฐ์ฅ ์์ ์๋ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ์คํ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช ๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง ์์ ๋ช ๋ น์ด ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ๋ ์๋ค.
์ถ๋ ฅ
์ถ๋ ฅํด์ผ ํ๋ ๋ช ๋ น์ด ์ฃผ์ด์ง ๋๋ง๋ค, ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
์ ์ถ๋ ฅ ์์
์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ
- ์๋ฃ๊ตฌ์กฐ
- ์คํ
๋ฌธ์ ํ์ด
- push, pop, size, empty, top 5๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ switch ๋ฌธ์ ์ฌ์ฉํ์ฌ ๊ฐ ์ํฉ์ ๋ง๋ ๋์์ ์ํํ๋ค.
- push๋ stack๋ฐฐ์ด์ append๋ฅผ ์ฌ์ฉํ์ฌ X๋ฅผ ์ถ๊ฐํ๋ค.
- pop์ stack์ด ๋น์ด์์ง ์๋ค๋ฉด removeLast๋ฅผ ์ฌ์ฉํด ๋ง์ง๋ง ์์๋ฅผ ์ญ์ ํด ์ถ๋ ฅํ๊ณ , ๋น์ด์๋ค๋ฉด -1์ ์ถ๋ ฅํ๋ค.
- size๋ count๋ฅผ ์ฌ์ฉํด stack์ ํฌ๊ธฐ๋ฅผ ์ถ๋ ฅํ๋ค.
- empty๋ isEmpty๋ฅผ ์ฌ์ฉํด stack์ด ๋น์ด์์ผ๋ฉด 1์, ์๋๋ผ๋ฉด 0์ ์ถ๋ ฅํ๋ค.
- top stack์ด ๋น์ด์์ง ์์ผ๋ฉด stack์ ๋ง์ง๋ง ์์๋ฅผ, ๋น์ด์๋ค๋ฉด -1์ ์ถ๋ ฅํ๋ค.
์์ค์ฝ๋
var stack = [Int]()
for _ in 0..<Int(readLine()!)!{
let input = readLine()!.split(separator: " ").map{String($0)}
switch input[0]{
case "push":
stack.append(Int(input[1])!)
case "pop":
print(stack.isEmpty ? -1 : stack.removeLast())
case "size":
print(stack.count)
case "empty":
print(stack.isEmpty ? 1 : 0)
case "top":
print(stack.isEmpty ? -1 : stack.last!)
default:
break
}
}
- 28ms ์์
'โจ๏ธ Language > swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ํ๋ก๊ทธ๋๋จธ์ค LV.1 ๋์ถฉ ๋ง๋ ์ํ (0) | 2023.03.19 |
---|---|
[Swift] ๋ฐฑ์ค 9012๋ฒ - ๊ดํธ (0) | 2023.03.18 |
[Swift] ํ๋ก๊ทธ๋๋จธ์ค LV.1 ์นด๋ ๋ญ์น (0) | 2023.03.18 |
[Swift] ํ๋ก๊ทธ๋๋จธ์ค LV.1 ๋๋ง์ ์ํธ (0) | 2023.03.18 |
[Swift] ํ๋ก๊ทธ๋๋จธ์ค LV.1 ๊ฐ์ธ์ ๋ณด ์์ง ์ ํจ๊ธฐ๊ฐ (0) | 2023.03.17 |