๋ฌธ์ ๋งํฌ : https://www.acmicpc.net/problem/10828
๋ฌธ์ ํ์ด
import sys
stack = [] # stack = array : ๋ณต์กํ๊ฒ ํด๋์ค๋ก ๋ง๋ค ํ์ ์๋ค
def push(data):
stack.append(data)
def pop():
if (empty()):
print(-1)
else:
lastIndex = len(stack) -1
print(stack.pop(lastIndex)) # remove (value), pop (index)
def size():
print(len(stack))
def empty():
if len(stack) == 0:
return 1
else:
return 0
def top():
if (empty()):
print(-1)
else:
lastIndex = len(stack) -1
print(stack[lastIndex])
# ๋ช
๋ น์ด ์ ๋ฐ๊ธฐ
num = int(sys.stdin.readline()) #input ์ฌ์ฉํ ์ ์๊ฐ ์ด๊ณผ
for i in range(num):
str = sys.stdin.readline()
strArray = str.split()
command = strArray[0]
if len(strArray) > 1:
args = strArray[1]
if (command == 'push'):
push(args)
elif (command == 'pop'):
pop()
elif (command == 'size'):
size()
elif (command == 'empty'):
print(empty())
elif (command == 'top'):
top()
[1] python์์ stack์ list ํํ๋ก ๊ตฌํ๊ฐ๋ฅํ๋ค.
ใด ๊ณต์๋ฌธ์ : https://docs.python.org/ko/3/tutorial/datastructures.html
> list.append(x)
๋ฆฌ์คํธ์ ๋์ ํญ๋ชฉ์ ๋ํฉ๋๋ค. a[len(a):] = [x] ์ ๋๋ฑํฉ๋๋ค.
> list.remove(x)
๋ฆฌ์คํธ์์ ๊ฐ์ด x ์ ๊ฐ์ ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ ์ญ์ ํฉ๋๋ค. ๊ทธ๋ฐ ํญ๋ชฉ์ด ์์ผ๋ฉด ValueError๋ฅผ ์ผ์ผํต๋๋ค.
> list.pop([i])
๋ฆฌ์คํธ์์ ์ฃผ์ด์ง ์์น์ ์๋ ํญ๋ชฉ์ ์ญ์ ํ๊ณ , ๊ทธ ํญ๋ชฉ์ ๋๋ ค์ค๋๋ค. ์ธ๋ฑ์ค๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด, a.pop() ์ ๋ฆฌ์คํธ์ ๋ง์ง๋ง ํญ๋ชฉ์ ์ญ์ ํ๊ณ ๋๋ ค์ค๋๋ค. (๋ฉ์๋ ์๊ทธ๋์ฒ์์ i ๋ฅผ ๋๋ฌ์ผ ๋๊ดํธ๋ ๋งค๊ฐ๋ณ์๊ฐ ์ ํ์ ์์ ๋ํ๋ ๋๋ค. ๊ทธ ์์น์ ๋๊ดํธ๋ฅผ ์ ๋ ฅํด์ผ ํ๋ค๋ ๋ป์ด ์๋๋๋ค. ์ด ํ๊ธฐ๋ฒ์ ํ์ด์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ ํผ๋ฐ์ค์์ ์ง์ฃผ ๋ฑ์ฅํฉ๋๋ค.)
์ฐธ๊ณ ๋ก, remove์์๋ ์ธ์๊ฐ์ผ๋ก ๊ฐ์์ฒด๋ฅผ, pop์ ์ธ์๊ฐ์ผ๋ก ์ธ๋ฑ์ค๋ฅผ ๋ฃ๊ธฐ ๋๋ฌธ์ pop์ ํ์ฉํด์ ๊ตฌํํด์ผ ํ๋ค. ์ด ๋ถ๋ถ ๋ฌธ์๋ฅผ ์ ๋๋ก ์ ์ฝ์ด์ ์กฐ๊ธ ๋ ์๊ฐ์ด ๊ฑธ๋ ธ๋ค.
[2] ์๊ฐ ์ ํ ์ด๊ณผ๊ฐ ๋๋ฉด, input() ๋์ sys.stdin.readline()์ ํ์ฉํ๋ฉด ์๊ฐ์ด ์ค์ด๋ ๋ค.
'๐ค ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
baekjoon. ํ2 (18258) [python][Silver IV] (0) | 2023.02.20 |
---|---|
baekjoon. ์ ๋ง๋๊ธฐ (10799) [python][Silver II] (0) | 2023.01.29 |
baekjoon. ํ์ ์ด๋ฐฅ (2531) | hashmap์ฌ์ฉ [java] (0) | 2022.10.17 |
baekjoon. ํํฐ (0) | 2022.10.07 |
baekjoon. ๋ ๊ฒ์ (0) | 2022.08.31 |