728x90
โญ ๋ฌธ์ ์ค๋ช
์ซ์์ "Z"๊ฐ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ๋ด๊ธด ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋๋ค. ๋ฌธ์์ด์ ์๋ ์ซ์๋ฅผ ์ฐจ๋ก๋๋ก ๋ํ๋ ค๊ณ ํฉ๋๋ค. ์ด ๋ "Z"๊ฐ ๋์ค๋ฉด ๋ฐ๋ก ์ ์ ๋ํ๋ ์ซ์๋ฅผ ๋บ๋ค๋ ๋ป์
๋๋ค. ์ซ์์ "Z"๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ง ๋, ๋จธ์ฑ์ด๊ฐ ๊ตฌํ ๊ฐ์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด๋ณด์ธ์.
๐ ์ ํ์ฌํญ
- 1 ≤ s์ ๊ธธ์ด ≤ 200
- -1,000 < s์ ์์ ์ค ์ซ์ < 1,000
- s๋ ์ซ์, "Z", ๊ณต๋ฐฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- s์ ์๋ ์ซ์์ "Z"๋ ์๋ก ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ฉ๋๋ค.
- ์ฐ์๋ ๊ณต๋ฐฑ์ ์ฃผ์ด์ง์ง ์์ต๋๋ค.
- 0์ ์ ์ธํ๊ณ ๋ 0์ผ๋ก ์์ํ๋ ์ซ์๋ ์์ต๋๋ค.
- s๋ "Z"๋ก ์์ํ์ง ์์ต๋๋ค.
- s์ ์์๊ณผ ๋์๋ ๊ณต๋ฐฑ์ด ์์ต๋๋ค.
- "Z"๊ฐ ์ฐ์ํด์ ๋์ค๋ ๊ฒฝ์ฐ๋ ์์ต๋๋ค.
๐ฑ ์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- s = "10 20 30 40"
- 10 + 20 + 30 + 40 = 100์ return ํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- s = "10 Z 20 Z 1"
- "10 Z 20 Z 1"์์ 10 ๋ค์ Z, 20 ๋ค์ Z๋ก 10, 20์ด ์ง์์ง๊ณ 1๋ง ๋ํ์ฌ 1์ return ํฉ๋๋ค.
โจ ๋ด ํ์ด
def solution(s):
list = s.split(' ')
stack = []
answer = 0
for item in list :
if item == 'Z' :
stack.pop()
else :
stack.append(int(item))
for item in stack :
answer += item
return answer
ํ์ด ์ธ์ด : Python3
๐ ๋ฌธ์ ํ์ด
ํ์ด
1. ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก ๋ฌธ์์ด s์ ๋ถ๋ฆฌํ์ฌ ๋ฐฐ์ด๋ก ์ ์ฅ
2. ๋ฐ๋ณต๋ฌธ์ ํตํด ๋ฐฐ์ด์ ๊ฐ ์์๋ค์ ์์ฐจ์ ์ผ๋ก ํ์
3-1. ํ์ ์ค์ธ ์์๊ฐ Z๊ฐ ์๋๋ผ๋ฉด, ํด๋น ์์๋ฅผ int๋ก ๋ณํํ์ฌ stack์ ์ฝ์
3-2. ํ์ ์ค์ธ ์์๊ฐ Z๋ผ๋ฉด, stack์์ pop()์ ํ๋ค
4. ๋ฐ๋ณต๋ฌธ ํ์์ด ์ข ๋ฃ๋ ํ, stack์์ ๋จ์์๋ ๋ชจ๋ ์์๋ค์ ๊ฐ์ ๋ํ์ฌ ๋ฐํ
728x90