[BOJ/백준] 15815번 PYTHON

유승한·2024년 1월 15일
0

algorithm

목록 보기
1/6

문제

https://www.acmicpc.net/problem/15815

유형

스택

어려웠던 점

숫자는 큐로, 연산자는 스택으로 나누어 풀려고 했던 점이 패착이었다.
해당 문제는 입력 문자열을 리스트로 변환해 스택에 숫자일 시 넣어주고 연산자일 시 pop 해준 뒤에 append 하는 방식으로 하나의 원소가 남아있을 때까지 for 문을 돌려줘 해결해야했다.
또한 마지막에 b//a를 통해 정수형으로 반환해야하는 점 또한 유의해야했다.

코드

import sys
stack =[]
result = 0
str = sys.stdin.readline().strip()
for i in str:
    if i == '+':
        a = stack.pop()
        b = stack.pop()
        stack.append(a+b)
    elif i == '-':
        a = stack.pop()
        b = stack.pop()
        stack.append(b-a)
    elif i == '*':
        a = stack.pop()
        b = stack.pop()
        stack.append(a*b)
    elif i == '/':
        a = stack.pop()
        b = stack.pop()
        stack.append(b//a)
    else:
        stack.append(int(i))
print(stack[0])
    

0개의 댓글

관련 채용 정보