inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

섹션 5 3번 후위표기식

131

dasomjang33

작성한 질문수 4

0

import sys



a=input()

stack=[] # stack.top의 우선순위가 자기보다 크지 않을 때 pop

res=""

for x in a:

     if x.isdecimal():

          res+=x

     else: # 문자일 경우

          if x=='(': # 일단 append

               stack.append(x)

          elif x=='*' or x=='/' or x=='+' or x=='-':

               while stack and (stack[-1]=='*' or stack[-1]=='/'): #  stack.top의 우선순위가 작지 않을 때  pop

                    res+=stack.pop()

               stack.append(x)

          elif x==')':

               while stack and stack[-1]!='(': # 괄호 안의 연산자

                    res+=stack.pop()

               stack.pop()

while stack:

     res+=stack.pop()

print(res)

선생님이 말씀하신 대로 코드를 짰는데 검사를 했을 때 앞에 두개 빼고는3~5번은 wrong answer 라고 나오네요.

제가 in3을 입력으로 넣어서 출력한 후위표기식을, 다시 중위표기식으로 바꿨을때와(손으로 직접),

out3의 후위표기식을  중위표기식으로 바꿨을 때(손으로 직접) 결과가,

in3으로 동일합니다.

동일한 중위표기식에 대한 후위표기식이 1개 이상이 아닐까요?

제가 틀렸다면 어떤 부분이 문제인지 지적 부탁드립니다

python 코테 준비 같이 해요!

답변 1

0

김태원

+, - 연산과 *, / 연산은 분리해서 처리해야 합니다. 위 코드대로 하면 현재 +, - 연산일 때 스택에 먼저 들어가 있는 +, -연산을 pop해야 하는데 pop을 하지 않고 있습니다. 

기존에 윈도우 10으로 잘 써왔는데 윈도우 11로 바꾸고 나서 채점이 안됩니다.

0

76

2

스택에서 ')'을 만나는 경우

0

78

3

문제가 어디있나요?

0

64

2

변수 or 함수명

0

61

1

침몰하는 타이타닉 문제 질문입니다

0

55

1

AA.py 책점 에러

0

57

1

오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.

0

111

2

5.동전분배하기 문제 밑에코드도 정답이될까요?

0

110

1

아나그램 비교 코드

0

116

2

AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.

0

160

2

문제 링크가있나여?

0

147

2

채점기 Time Limit Exceeded 오류 문의

1

163

2

동적계획법은 사용하는 문제

0

126

2

제 코드 좀 봐주세요

0

148

1

예외가 존재할 가능성?

0

97

1

3번이 안풀립니다

0

93

0

5번 틀림

0

113

0

오류원인?

0

98

0

리스트 선언

0

106

1

침몰하는 타이타닉(그리디) 문제 질문

0

109

1

알고리즘

0

69

1

코딩테스트

0

92

1

DFS 순서 질문드립니다.

0

124

2

left, right를 사용한 풀이법에 대한 질문입니다

0

91

1