https://www.acmicpc.net/problem/10828
๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ 10828๋ฒ ์คํ๋ฌธ์
[๋ฌธ์ ]
์ ์๋ฅผ ์ ์ฅํ๋ ์คํ์ ๊ตฌํํ ๋ค์, ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ฒ๋ฆฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๋ช ๋ น์ ์ด ๋ค์ฏ ๊ฐ์ง์ด๋ค.
- push X: ์ ์ X๋ฅผ ์คํ์ ๋ฃ๋ ์ฐ์ฐ์ด๋ค.
- pop: ์คํ์์ ๊ฐ์ฅ ์์ ์๋ ์ ์๋ฅผ ๋นผ๊ณ , ๊ทธ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ์คํ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
- size: ์คํ์ ๋ค์ด์๋ ์ ์์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค.
- empty: ์คํ์ด ๋น์ด์์ผ๋ฉด 1, ์๋๋ฉด 0์ ์ถ๋ ฅํ๋ค.
- top: ์คํ์ ๊ฐ์ฅ ์์ ์๋ ์ ์๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ์คํ์ ๋ค์ด์๋ ์ ์๊ฐ ์๋ ๊ฒฝ์ฐ์๋ -1์ ์ถ๋ ฅํ๋ค.
[์ ๋ ฅ]
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช ๋ น์ ์ N (1 ≤ N ≤ 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช ๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง ์์ ๋ช ๋ น์ด ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ๋ ์๋ค.
[์ถ๋ ฅ]
์ถ๋ ฅํด์ผํ๋ ๋ช ๋ น์ด ์ฃผ์ด์ง ๋๋ง๋ค, ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
์ฒ์ ๋ฐฉ๋ฒ์ผ๋ก ํ์์๋ ์๊ฐ์ด๊ณผ๊ฐ ๋์ ๋ค๋ฅธ ์ฝ๋๋ฅผ ์์ฑํด์ ํ์๋๋ฐ๋ ์๊ฐ์ด๊ณผ๊ฐ ๋ฌ๋ค....
์ฐพ์๋ณด๋๊น input() ํจ์๋ฅผ ์ฌ์ฉํ์ ๊ฒฝ์ฐ์ ์๊ฐ์ด๊ณผ๊ฐ ๋๊ฒ๋๋ค...์ค๋ง์ด๊ฐ..
๊ทธ๋์
import sys
count= int(sys.stdin.readline()) ์ด๊ฒ์ ์ฌ์ฉํด์ ์
๋ ฅ์ ๋ฐ์๋ค!!
1๋ฒ ํ์ด
class Stack:
def __init__(self):
self.items = []
def push(self, val):
self.items.append(val)
def pop(self):
try:
return self.items.pop()
except IndexError:
return (-1)
def top(self):
try:
return self.items[-1]
except IndexError:
return (-1)
def __len__(self):
return len(self.items)
def isEmpty(self):
return len(self) == 0
import sys
count= int(sys.stdin.readline())
S = Stack()
for i in range(count):
words = sys.stdin.readline().split()
if words[0] == 'push':
S.push(int(words[1]))
elif words[0] == 'pop':
print(S.pop())
elif words[0] == 'size':
print(S.__len__())
elif words[0] == 'empty':
if S.__len__() == 0: print(1)
else: print(0)
elif words[0] == 'top':
print(S.top())
2๋ฒ ํ์ด
count = int(input())
s = []
for i in range(count):
words = input().split()
if words[0] == 'push':
s.append(words[1])
elif words[0] == 'pop':
if s: print(s.pop())
else: print(-1)
elif words[0] == 'size':
print(len(s))
elif words[0] == 'empty':
if s: print(0)
else : print(1)
elif words[0] == 'top':
if s : print(s[-1])
else : print(-1)