728x90
이 문제는 스택을 이용하여 푸는 문제이다.
[나의 풀이 - 첫 번째 시도]
len_element= int(input())
stack = []
for i in range(len_element):
element = input()
if element.find('push') != -1:
x, y =map(str, element.split())
stack.append(int(y))
elif element.find('pop') != -1:
if len(stack)==0:
print(-1)
else:
print(stack[-1])
stack.pop()
elif element.find('top') != -1:
if len(stack)==0:
print(-1)
else:
print(stack[-1])
elif element.find('size') != -1:
print(len(stack))
elif element.find('empty') != -1:
if len(stack)==0:
print(1)
else:
print(0)
시간초과가 떴다....
이 문제의 입력은 매우 많으므로 input() 함수가 아닌 sys.stdin.readline()함수를 사용하여야 시간 초과가 나지 않는다.
[나의 풀이 - 수정된 코드]
import sys
len_element= int(sys.stdin.readline())
stack = []
for i in range(len_element):
element = sys.stdin.readline()
if element.find('push') != -1:
x, y =map(str, element.split())
stack.append(int(y))
elif element.find('pop') != -1:
if len(stack)==0:
print(-1)
else:
print(stack[-1])
stack.pop()
elif element.find('top') != -1:
if len(stack)==0:
print(-1)
else:
print(stack[-1])
elif element.find('size') != -1:
print(len(stack))
elif element.find('empty') != -1:
if len(stack)==0:
print(1)
else:
print(0)
입력 받는 부분을 고치고 나니 통과 되었다!
728x90
'STUDY > Python' 카테고리의 다른 글
[백준] 18258번 큐2 python (0) | 2023.06.20 |
---|---|
[백준] 9012번 괄호 python (0) | 2023.06.19 |
[자료구조] 스택 stack (0) | 2023.06.19 |
[프로그래머스] 문자열의 뒤의 n글자 (0) | 2023.06.12 |
[프로그래머스] 공배수 (0) | 2023.06.11 |