์คํ
๐ ๋ฌธ์
๋ฌธ์
์ ์๋ฅผ ์ ์ฅํ๋ ์คํ์ ๊ตฌํํ ๋ค์, ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ฒ๋ฆฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๋ช ๋ น์ ์ด ๋ค์ฏ ๊ฐ์ง์ด๋ค.
- push X: ์ ์ X๋ฅผ ์คํ์ ๋ฃ๋ ์ฐ์ฐ์ด๋ค.
- pop: ์คํ์์ ๊ฐ์ฅ ์์ ์๋ ์ ์๋ฅผ ๋นผ๊ณ , ๊ทธ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ์คํ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
- size: ์คํ์ ๋ค์ด์๋ ์ ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
- empty: ์คํ์ด ๋น์ด์์ผ๋ฉด 1, ์๋๋ฉด 0์ ์ถ๋ ฅํ๋ค.
- top: ์คํ์ ๊ฐ์ฅ ์์ ์๋ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ์คํ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์ด์ง๋ค.
๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช ๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค.
์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
๋ฌธ์ ์ ๋์์์ง ์์ ๋ช ๋ น์ด ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ๋ ์๋ค.์ถ๋ ฅ
์ถ๋ ฅํด์ผํ๋ ๋ช ๋ น์ด ์ฃผ์ด์ง ๋๋ง๋ค, ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
๐ง ํ์ด
ํ์ด
'''
input()์ ์ฌ์ฉํ๋ฉด ์๊ฐ ์ด๊ณผ๊ฐ ๋๋ค.
๋ฐ๋ผ์ sys๋ฅผ ๋ถ๋ฌ์, stdin.readline()์ ํ์ฉํ๋ค.
'''
import sys
n = int(sys.stdin.readline()) # ์ ์ n ์
๋ ฅ ๋ฐ ํ ๋น
stack = [] # ๋น ์คํ ํ ๋น
for _ in range(n): # n๋ฒ ๋ฐ๋ณต
w = list(sys.stdin.readline().split()) # w๋ก ๋ช
๋ น ๋ถ๋ฌ์ค๊ธฐ
command = w[0] # ๋ช
๋ น์ด ํ ๋น
if len(w) == 2: # ๋ช
๋ น์ด ๋ค์ ์ ์๊ฐ ์์ ๊ฒฝ์ฐ
num = int(w[1]) # ์ ์๋ num์ ํ ๋น
if command == 'push': # ๋ช
๋ น์ด๊ฐ push์ผ ๊ฒฝ์ฐ,
stack.append(num) # stack์ ํด๋น num ์ถ๊ฐ
elif command == 'pop': # ๋ช
๋ น์ด๊ฐ pop์ผ ๊ฒฝ์ฐ,
if len(stack) != 0:
print(stack.pop()) # stack์ ๋งจ ๋ค์ ์ ์ pop() ํ๊ณ ์ถ๋ ฅ
else:
print(-1)
elif command == 'size': # ๋ช
๋ น์ด๊ฐ size์ผ ๊ฒฝ์ฐ,
print(len(stack)) # stack์ ๊ธธ์ด ์ถ๋ ฅ
elif command == 'empty': # ๋ช
๋ น์ด๊ฐ empty์ผ ๊ฒฝ์ฐ,
if len(stack) == 0:
print(1) # ์คํ์ด ๋น์ด ์๋ค๋ฉด 1, ์๋๋ฉด 0 ์ถ๋ ฅ
else:
print(0)
elif command == 'top': # ๋ช
๋ น์ด๊ฐ top์ผ ๊ฒฝ์ฐ,
if len(stack) != 0:
print(stack[-1]) # ์คํ์์ ๊ฐ์ฅ ๋์ด ์๋ ์ ์ ์ถ๋ ฅ
else:
print(-1)
'๐งฉ Algorithm > ๐จ Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ์ด์ฌ] ๋ฐฑ์ค 2178๋ฒ ๋ฌธ์ : ๋ฏธ๋ก ํ์ (0) | 2022.08.26 |
---|---|
[ํ์ด์ฌ] ๋ฐฑ์ค 10773๋ฒ ๋ฌธ์ : ์ ๋ก (0) | 2022.08.09 |
[ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ] ๋์ ์๋ฅด๊ธฐ(๊ฒฐ์ ์๊ณ ๋ฆฌ์ฆ) (0) | 2022.08.01 |
[ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ] ์ด๋ถ ๊ฒ์ (0) | 2022.08.01 |
[ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ] ๊ฒฉ์ํ ํ๋ฌธ์ (0) | 2022.07.26 |