본문 바로가기

개발이나하자../algorithm

[algorithm] 후위표기식 | postfix expression | 중위표기식에서 후위표기식으로 변환하기 | infix to postfix expression using python

 

우리가 흔히 아는 표현식은 중위 표현식이라고 한다. 3+5와 같이 연산자가 피연산자 사이에 있으면 중위 표현식이라고 한다.

 

중위 표현식을 후위 표기법으로 바꾸는 알고리즘을 공부해 보겠다.

처음에는 뭐지? 했는데 보다 보니깐 이해했다. 이런 거 어떻게 생각해 냈는지 아무리 생각해도 신기하다.

Rule이 있음

1. 피연산자는 무조건 res로 이동

2. 연산자와 괄호 ()는 stack으로 이동하는데 조건이 있다

2-1. * 와 / 는 +와 - 보다 우선순위가 높다

2-2 )가 나오면 ( 후에 들어간 연산자들을 stack에서 pop 하고 res로 옮긴다. ( 와 )는 res로 옮기지 않는다.

3. 피연산자를 다 옮겼다면 남아있는 연산자들을 res로 옮긴다.

 

슬라이드를 넘기면서 보면 이해하기 쉬울 것이다.

 

01234567891011121314

 

 

code는 이렇게 작성해봤다.