inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

174만명의 커뮤니티!! 함께 토론해봐요.

3. 후위 표기식 만들기

미해결

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

코드는 간략하게 필요한 부분만 쓰겠습니다. for x in a: 1. if x.isdecimal(): res+=x else: 2. if x=='(': stack.append(x) 3. elif x=='*' or x=='/': while stack and (stack[-1]=='*' or stack[-1]=='/'): res+=stack.pop() stack.append(x) 4. elif x=='+' or x=='-': while stack and stack[-1]!='(': res+=stack.pop() stack.append(x) 5. elif x==')': while stack and stack[-1]!='(': res+=stack.pop() stack.pop() 질문 3+5*2/(7-2) 에서 가장 앞에 있는 +는 1, 2, 3, 4, 5 중에 어디에 들어 나가요? 정리 x=3은 숫자이므로 1번 res에 들어갑니다. x= "+"일 때 (현재 stack은 텅 비어 있는 상태) +는 else:에 들어 갑니다. +는 '(' 가 아니므로 2번 pass +는 * 또는 /가 아니므로 3번 pass +는 +에 해당 하나 while stack 에서 stack에 데이터가 없으므로 while 조건 탈락 -> 4번 pass +는 ) 가 아니므로 5번 pass 코드 짜려고 구성했을 때 가장 먼저 막히는 것이 비어 있는 stack에 첫 연산자를 어떻게 집어 넣느냐 였습니다. 부득이하게 들여쓰기가 안되는 점은 양해를 구합니다.

  • 후위
  • python
  • 중위
  • 코테 준비 같이 해요!
똑같이썼는데안돼 댓글 1 좋아요 0 조회수 374

인기 태그

인프런 TOP Writers

주간 인기글