학과공부/자료구조

[백준] 10828번 - 스택 (By Python)

tlsrhksdn1 2022. 7. 24. 19:43

 

풀이

 

import sys
N=int(sys.stdin.readline())

list=[] # 빈 리스트를 생성한다.

for i in range(N):                                 # N의 숫자만큼
    word=sys.stdin.readline().split()     # 문장을 읽어온다.
   
    if word[0]=='push':
        list.append(word[1])                    
   
    elif word[0]== 'pop':
        if len(list)==0:
            print(-1)
        else:    
            print(list.pop())
            
    elif word[0]=='size':
        print(len(list))
    
    elif word[0]=='empty':
        if len(list)==0:
            print(1)
        else:
            print(0)    
    elif word[0]=='top':
        if len(list)==0:
            print(-1)
        else:
            print(list[-1])

 

추가 설명

input()함수를 사용하여 텍스트를 입력받으면 시간 초과 에러가 발생하므로, sys 모듈을 import한 후 sys.stdin.readlines() 함수를 통해 시간 초과 문제를 해결하였다.

 

list 안에 원소가 존재하지 않는다는 내용을 len(list)==0으로 작성하였으나, if  list:  으로 대체하는 것이 코드의 길이를 줄이고 가독성이 좋아지게 할 수 있는 좋은 방법인 것 같다.