๐ ์ถ์ฒ - 10828 - ์คํ
๋ฌธ์ ์ค๋ช
์ ์๋ฅผ ์ ์ฅํ๋ ์คํ์ ๊ตฌํํ ๋ค์, ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋ช
๋ น์ ์ฒ๋ฆฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๋ช ๋ น์ ์ด ๋ค์ฏ ๊ฐ์ง์ด๋ค.
์
๋ ฅ
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช
๋ น์ ์ N (1 โค N โค 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช
๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง ์์ ๋ช
๋ น์ด ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ๋ ์๋ค.
์ถ๋ ฅ
์ถ๋ ฅํด์ผํ๋ ๋ช
๋ น์ด ์ฃผ์ด์ง ๋๋ง๋ค, ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
์ ์ถ๋ ฅ ์
์์ ์ ๋ ฅ | ์์ ์ถ๋ ฅ | |
---|---|---|
-- | 14 push 1 push 2 top size empty pop pop pop size empty pop push 3 empty top | 2 2 0 2 1 -1 0 1 -1 0 3 |
-- | 7 pop top push 123 top pop top pop | -1 -1 123 123 -1 -1 |
๋ฌธ์ ์ ์ฃผ์ด์ง ๊ทธ๋๋ก ๊ตฌํํ๋ฉด ๋๋ค.
์ฌ๊ธฐ์push
๋ฅผ ์ ์ธํ ๋๋จธ์ง ๋จ์ด๋ ํ ๋จ์ด์ด๊ธฐ ๋๋ฌธ์ ๊ทธ๋๋ก ๊ตฌํํ๋ฉด ๋์ง๋ง,push
์ ๊ฐ์ ๊ฒฝ์ฐex) push 1
๊ณผ ๊ฐ์ด ๋์ด ์์ด ์ซ์๋ฅผ ๋ผ์ด๋ด์ผ ํ๋ค๋ ์ ๋ง ์ ์ํ๋ฉด ์ด๋ฒ ๋ฌธ์ ๋ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค.
import sys
input = sys.stdin.readline
def check(stack, word):
if word == 'top':
if len(stack) != 0 and stack[-1]:
print(stack[-1])
else:
print(-1)
elif word == 'size':
print(len(stack))
elif word == 'empty':
if len(stack) == 0:
print(1)
else:
print(0)
elif word == 'pop':
if len(stack) > 0:
print(stack.pop())
else:
print(-1)
else:
tmp = int(word.split(' ')[1])
stack.append(tmp)
N = int(input().strip())
stack = []
for i in range(N):
word = input().strip()
check(stack, word)
๋ค๋ง ์ด ๋ฌธ์ ์์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ ธ๋ ๋ถ๋ถ์ด ์์๋ค. ๋ก์ง์ ๋ฌธ์ ๊ฐ ์๋๋ผ input()๊ณผ sys.stdin.readline์ ์ฐจ์ด ๋๋ฌธ์ ์ค๋ฅ๊ฐ ๋ฐ์ํด ์ค๋ ๊ฑธ๋ ธ๋๋ฐ ์ด ๋ถ๋ถ์ ์ง๊ณ ๋์ด๊ฐ๋ คํ๋ค.
input()
sys.stdin.readline()
์์ ๋ฌธ์ ์์๋ ๊ฐํ๋ฌธ์๊ฐ ์ญ์ ๊ฐ ๋์ง ์์
top
๋ฅผ ์ ๋ ฅํ์์๋ ๋ถ๊ตฌํ๊ณ ๋ง์ง๋งelse
๋ถ๋ถ์ผ๋ก ๋ค์ด๊ฐ ํค๋งธ์ต๋๋ค. ๊ทธ๋์sys.stdin.readline
์ด ๊ฐํ์ ํฌํจํด ๋ฐํํ๋ค๋ ์ฌ์ค์ ์์๊ณstrip()
์ ์ฌ์ฉํด ๊ณต๋ฐฑ์ ์ ๊ฑฐํด ์ฃผ์์ต๋๋ค.
์ธ์๋ฅผ ์ ๋ฌํ์ง ์์ ์๋ ์์ผ๋ฉฐ, ์ธ์๋ฅผ ์ ๋ฌํ์ง ์์ผ๋ฉด String์์ ๊ณต๋ฐฑ์ ์ ๊ฑฐํฉ๋๋ค.
๊ณต๋ฐฑ(white space) ์ ๊ฑฐ
text = ' this is gold '
print('[' + text.rstrip() + ']')
print('[' + text.lstrip() + ']')
print('[' + text.strip() + ']')
-------------------------------------------
# result
[ this is gold]
[this is gold ]
[this is gold]
๋์ผํ ๋ฌธ์ ์ ๊ฑฐ
์ธ์๋ก ์ ๋ฌํ ํ ๋ฌธ์์ ๋์ผํ ๊ฐ์ฒด๋ฅผ ๋ชจ๋ ์ ๊ฑฐ, ๋์ผํ์ง ์์ ๋ฌธ์๊ฐ ๋์ฌ ๋๊น์ง ์ ๊ฑฐํ๋ค
text = 'aaaafineappleaaaaa'
print(text.rstrip('a'))
print(text.lstrip('a'))
print(text.strip('a'))
-------------------------------------------
# result
[aaaafineapple]
[fineappleaaaaa]
[fineapple]
์ค๊ฐ์ ์๋ a์๋ ์ํฅ์ ๋ฏธ์น์ง ์์
์ฌ๋ฌ ๋ฌธ์ ์ ๊ฑฐ
์ธ์๋ก ์ฌ๋ฌ ๋ฌธ์๋ฅผ ์ ๋ฌํ๋ฉด ๊ทธ ๋ฌธ์๋ค๊ณผ ๋์ผํ ๊ฒ๋ค์ ๋ชจ๋ ์ ๊ฑฐ, ๋์ผํ์ง ์์ ๋ฌธ์๊ฐ ๋์ฌ ๋๊น์ง ์ ๊ฑฐํ๋ค.
text = "rrrrr865.....pretty....rr,,,,"
print(text.lstrip(',865.r'))
print(text.rstrip(',865.r'))
print(text.strip(',865.r'))
print(text.strip(',568.r'))
-------------------------------------------
# result
[pretty....rr,,,,]
[rrrrr865.....pretty]
[pretty]
[pretty]
์์ ๋์ผํ๊ฒ ์ค๊ฐ์ ์๋ ๋ฌธ์์ ๋ํด์๋ ์ํฅ์ ๋ฏธ์น์ง์๋๋ค.