-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
섹션5. - 3번_후위표기식 만들기 질문이요!
21.01.29 20:05 작성 조회수 137
0
안녕하세요.
"섹션5. - 3번_후위표기식 만들기" 질문이 있습니다.
for x in data:
if x.isdecimal():
res += x
else:
if x == '(':
stack.append(x)
elif x == '*' or x == '/':
while stack and (stack[-1] == '*' or stack[-1] == '/'):
res =+ stack.pop()
stack.append(x)
...
...
...
연산자가 곱셈(*)이랑 나눗셈(/)일때, while문에서는
아래의 다른 while문들과는 다르게, '(' 연산자가 나오면 멈춰야하는 != '(' 가 있는데 왜, 위에 쓴 while문에는 없는지 모르겠습니다.
똑같이 != '(' 를 입력해줬는데 돌아가긴 하더라구요. 혹시 넣어도 되는 부분인지, 아니면 넣어주면 안되는지 궁금합니다 ㅠㅠㅠ
답변을 작성해보세요.
0
김태원
지식공유자2021.01.31
안녕하세요^^
while stack and (stack[-1] == '*' or stack[-1] == '/'):
위 코드는 *와 /만 스택에서 빼겠다는 의미입니다. 당연히 '(' 를 만나면 거짓이 됩니다.
답변 1