๋ฐฑ์ค ๋ฌธ์ ๋ชจ์
๋ฌธ์ ๋งํฌ
https://www.acmicpc.net/problem/10773
10773๋ฒ: ์ ๋ก
์ฒซ ๋ฒ์งธ ์ค์ ์ ์ K๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ K ≤ 100,000) ์ดํ K๊ฐ์ ์ค์ ์ ์๊ฐ 1๊ฐ์ฉ ์ฃผ์ด์ง๋ค. ์ ์๋ 0์์ 1,000,000 ์ฌ์ด์ ๊ฐ์ ๊ฐ์ง๋ฉฐ, ์ ์๊ฐ "0" ์ผ ๊ฒฝ์ฐ์๋ ๊ฐ์ฅ ์ต๊ทผ์ ์ด ์๋ฅผ ์ง์ฐ๊ณ , ์๋ ๊ฒฝ
www.acmicpc.net
๋ฌธ์
๋์ฝ๋ ๊ธฐ์ฅ ์ฌ๋ฏผ์ด๋ ๋์๋ฆฌ ํ์์ ์ค๋นํ๊ธฐ ์ํด์ ์ฅ๋ถ๋ฅผ ๊ด๋ฆฌํ๋ ์ค์ด๋ค.
์ฌํ์ด๋ ์ฌ๋ฏผ์ด๋ฅผ ๋์์ ๋์ ๊ด๋ฆฌํ๋ ์ค์ธ๋ฐ, ์ ์ํ๊ฒ๋ ํญ์ ์ ์ ์๋ ์ฌํ์ด๋ ๋์ ์ค์๋ก ์๋ชป ๋ถ๋ฅด๋ ์ฌ๊ณ ๋ฅผ ์น๊ธฐ ์ผ์ค์๋ค.
์ฌํ์ด๋ ์๋ชป๋ ์๋ฅผ ๋ถ๋ฅผ ๋๋ง๋ค 0์ ์ธ์ณ์, ๊ฐ์ฅ ์ต๊ทผ์ ์ฌ๋ฏผ์ด๊ฐ ์ด ์๋ฅผ ์ง์ฐ๊ฒ ์ํจ๋ค.
์ฌ๋ฏผ์ด๋ ์ด๋ ๊ฒ ๋ชจ๋ ์๋ฅผ ๋ฐ์ ์ ์ ํ ๊ทธ ์์ ํฉ์ ์๊ณ ์ถ์ด ํ๋ค. ์ฌ๋ฏผ์ด๋ฅผ ๋์์ฃผ์!
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ์ ์ K๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ K ≤ 100,000)
์ดํ K๊ฐ์ ์ค์ ์ ์๊ฐ 1๊ฐ์ฉ ์ฃผ์ด์ง๋ค. ์ ์๋ 0์์ 1,000,000 ์ฌ์ด์ ๊ฐ์ ๊ฐ์ง๋ฉฐ, ์ ์๊ฐ "0" ์ผ ๊ฒฝ์ฐ์๋ ๊ฐ์ฅ ์ต๊ทผ์ ์ด ์๋ฅผ ์ง์ฐ๊ณ , ์๋ ๊ฒฝ์ฐ ํด๋น ์๋ฅผ ์ด๋ค.
์ ์๊ฐ "0"์ผ ๊ฒฝ์ฐ์ ์ง์ธ ์ ์๋ ์๊ฐ ์์์ ๋ณด์ฅํ ์ ์๋ค.
์ถ๋ ฅ
์ฌ๋ฏผ์ด๊ฐ ์ต์ข ์ ์ผ๋ก ์ ์ด ๋ธ ์์ ํฉ์ ์ถ๋ ฅํ๋ค. ์ต์ข ์ ์ผ๋ก ์ ์ด๋ธ ์์ ํฉ์ 231-1๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ค.
์ ์ถ๋ ฅ ์์
์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ
- ๊ตฌํ
- ์๋ฃ ๊ตฌ์กฐ
- ์คํ
๋ฌธ์ ํ์ด
- n๊ฐ์ ์ ์๋ฅผ ์ ๋ ฅ๋ฐ์ 0์ด๋ผ๋ฉด ๊ฐ์ฅ ์ต๊ทผ์ ์ด ์๋ฅผ stack์์ ์ง์ฐ๊ณ , ์๋ ๊ฒฝ์ฐ ํด๋น ์๋ฅผ stack์ ์ถ๊ฐํ๋ค.
- reduce() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ stack์ ํฉ์ ๊ตฌํ๋ค.
์์ค์ฝ๋
let n = Int(readLine()!)!
var stack = [Int]()
for _ in 0..<n {
let num = Int(readLine()!)!
if num == 0 {
stack.removeLast()
}else{
stack.append(num)
}
}
print(stack.reduce(0, +))
- 48ms ์์
'โจ๏ธ Language > swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] Escaping Closure (1) | 2023.05.20 |
---|---|
[Swift] ๋ฐฑ์ค 1874๋ฒ - ์คํ ์์ด (0) | 2023.03.29 |
[Swift] ๋ฐฑ์ค 1406๋ฒ - ์๋ํฐ (0) | 2023.03.27 |
[Swift] ๋ฐฑ์ค 3273๋ฒ - ๋ ์์ ํฉ (0) | 2023.03.26 |
[Swift] ๋ฐฑ์ค 1475๋ฒ - ๋ฐฉ ๋ฒํธ (0) | 2023.03.26 |