operator = ['*', '/', '+', '-']
def is_number(x):
if x not in operator:
return True
else:
return False
def compute_postfix(postfix):
stack = []
for c in postfix:
if is_number(c):
stack.append(int(c))
else:
z = 0
y = stack.pop()
x = stack.pop()
if c == '*':
z = x * y
elif c == '/':
z = x / y
elif c == '+':
z = x + y
elif c == '-':
z = x - y
stack.append(z)
return "{:.4f}".format(stack.pop())
p = input().split()
print(compute_postfix(p))
2월까지 자료구조 강의를 완강해야 하는 미션이 생겨 블로그에 기록을 남기려 한다.
(대충 발등이 불타고 있는 상태짤)
강의 내용 자체는 이전에 들었던 내용이라 왠만큼 알고 있지만 그래도 코딩 문제는 왠만하면 풀고 넘어가고자 한다.
이번 문제는 Postfix를 Infix로 변환하는 함수를 만드는 것으로 비교적 쉬웠다.
'프로그래밍 > Python' 카테고리의 다른 글
[ 코테python반 스터디 ] 4주차 후기 (0) | 2022.07.31 |
---|---|
[ 코테python반 스터디 ] 3주차 후기 (0) | 2022.07.20 |
[ 코테python반 스터디 ] N-Queen (0) | 2022.07.18 |
[ 코테python반 스터디 ] 2주차 후기 (0) | 2022.07.14 |
[ 코테python반 스터디 ] 1주차 후기 (0) | 2022.07.06 |