티스토리 뷰
수학에서 사용되는 사칙연산에는 여러가지 규칙이 있다. 예를들어 곱하기와 나누기는 다른 연산보다 우선시 되어 하고, 괄호가 있는 경우에는 모든 연산의 최우선이 된다. 이러한 규칙들로 인해서 사칙연산을 프로그래밍적으로 구현하기에 많은 어려움이 있다. 하지만 ‘후위표기식(postfix expression)’을 사용한다면 좀 더 쉽게 가능할 것이다.
후위표기식이란
먼저 우리가 일반적으로 사용하는 사칙연산은 피연산자(숫자)사이에 연산자(+-*/)가 들어가는 형태로 ‘중위표기식(infix expression)’이라고 한다. 그러나 후위표기식은 피연산자가 먼저쓰이고, 그 뒤로 피연산자가 나오는 형태를 말한다. 예를들어, 4+3의 중위표기식을 후위표기식으로 바꾼다면 4 3 + 으로 표현할 수 있다.
후위표기식의 장점
일반적으로 익숙하지 않아서 그렇지, 중위표기식보다 후위표기식은 괄호나 사칙연산의 우선순위를 생각하지 않아 훨씬 직관적이다. 예를들어, 중위표기식에서 4*7+2라는 연산을 진행할 때, 7+2를 먼저 연산하고 싶다면, 괄호를 필연적으로 사용해야 한다. 4*(7+2) 하지만 후위표기식으로 표현한다면 4 7 2 + * 로 표현할 수있다.
후위표기식 읽는 법
왼쪽에서 부터 순차적으로 읽기 시작한다. 피연산자(숫자)는 일단 지나치고, 연산자(+-*/)가 나오게 되면, 연산자 앞쪽 두 개의 숫자로 연산을 진행한다.
* 예제) 4 7 2 + *
1. 왼쪽부터 순차적으로 읽으면서 연산자를 찾는다.
2. +연산자를 찾았다. +연산자를 기준으로 앞쪽 두개의 피연산자 7, 2 를 더한다.
3. 연산을 진행하고 나면 연산된 값을 적어둔다. 4 9 *
4. 다시 순차적으로 연산자를 찾는다.
5. *연산자를 찾았다. 앞쪽 두개의 피연산자를 이용하여 연산을 진행한다.
6. 연산결과는 36
'Algorithm' 카테고리의 다른 글
탑코더(TopCoder) 알고리즘 - The Panlindrome (0) | 2018.12.22 |
---|---|
프로그래머스 알고리즘 - 타겟 넘버 (0) | 2018.12.21 |
멱집합 (부분집합 - Power Set) 알고리즘 (0) | 2018.12.19 |
재귀 알고리즘 문제 해결하기 (0) | 2018.12.16 |
비트연산자 (bit operator) (0) | 2018.11.06 |