[백준] 스택 10828번 파이썬 Python 자료구조

Jeony·2021년 9월 27일
0

백준

목록 보기
1/25
post-thumbnail

📌문제 접근

스택을 파이썬에서는 리스트로 구현한다.
반복문 안에서는 input()보다 sys.stdin.readline()을 사용해야 시간초과 발생 확률 Down.

input()과 sys.stdin.readline()의 차이

📌내가 작성한 코드

import sys

n = int(input())
stack = []
for i in range(n):
    s = sys.stdin.readline().split()
    if s[0].find("push") == 0:
        stack.append(s[1])
    elif s[0] == "pop":
        if stack != []:
            print(stack.pop())
        else:
            print(-1)
    elif s[0] == "size":
        print(len(stack))
    elif s[0] == "empty":
        if stack != []:
            print(0)
        else:
            print(1)
    elif s[0] == "top":
        if stack != []:
            print(stack[-1])
        else:
            print(-1)

📌풀이

push는 입력을 "push 1"로 입력된다.
입력문에서 push인지 찾기 위해서는 find함수로 찾는다.
push라는 문자열이 있으면 0이 반환되기 때문에 0이 맞으면 stack 리스트에 push 뒤에 1의 값을 넣는다.

pop으로 가장 나중에 들어온(맨 오른쪽 값)을 제거한다.

size를 체크하기 위해서는 len()함수를 이용한다. 리스트 안에 들어있는 값의 총 수를 반환해준다.

profile
알고리즘으로 문제를 해결하다가 포기함

0개의 댓글