본문 바로가기

프로그램/컴퓨터일반

수식의 전위, 중위, 후위 표기법 + 예시 4가지

수식 표기법의 종류


1. 전위 (prefix) 표기법 : 연산자를 먼저 표시하고 연산에 필요한 피연산자를 나중에 표시하는 방법.

2. 후위 (postfix) 표기법 : 피연산자를 먼저 표시하고 연산자를 나중에 표시하는 방법.

3. 중위 (infix) 표기법 : 연산자를 두 피연산자 사이에 표기하는 방법으로 가장 일반적으로 사용되는 표현 방법. 이항 연산자 표현에 적합하며 산술 연산, 논리 연산, 비교 연산 등에 주로 사용함.



수식 표기법에는 위처럼 3가지가 있습니다. 

위의 정의/개념을 먼저 읽어보시고 아래의 예시 4가지를 통해 이해하시면 좋을 듯 하여 예시 문제를 추가해두었습니다.



예시 4가지


1. ( A + B ) * ( C - D )를 후위 표기법으로


① 연산을 진행하는 순서(우선순위)에 맞게 괄호로 묶어줍니다.

(( A + B ) * ( C - D ))

② '후위' 표기법이므로 연산자를 해당 괄호 바로 뒤(우측)으로 옮겨줍니다.

(( A B ) + ( C D ) - ) *

③ 이제 불필요한 괄호들을 모두 제거해줍니다. 

A B + C D - *

괄호를 적었다가 지우는 이유는, 괄호는 연산 우선순위를 구분하고 표기법에 따라 구분하기 쉽게하기 위해서 적용하는 것입니다. 그리고 위 3가지 표기법에서는 일반적으로 괄호는 표기하지 않습니다.


2. 후위 표기법으로 표기된 A B + C D - * (위 1번 결과)를 다시 중위 표기법으로


① 후위 표기법의 순서인 '피연산자, 피연산자, 연산자'를 보기 쉽게 괄호로 묶어봅니다. 가장 쉬워보이는 A B + 와 C D - 를 묶어주고 마지막으로 * 를 묶었습니다.

A B + C D - *

( A B ) + ( C D - ) *

(( A B ) + ( C D - ) * )

② 위처럼 표현한 것을 이제 중위 표기법으로 표기하기 위해서 연산자를 피연산자 '사이'로 옮겨줍니다.

(( A + B ) * ( C - D ))

③ 다시 괄호를 제거해줍니다. 이때, 가장 끝에 있는 괄호만 제거해주어야 합니다. ( A + B )와 ( C - D )의 괄호까지 제거하지 않도록 주의해야 합니다. 이 때의 괄호는 연산 우선순위를 정해주는 것이므로 꼭 필요합니다. 이 괄호를 제거하게 되면 곱하기 연산자(*)가 B와 C를 먼저 계산하기 때문입니다.
 - 아래의 4번 예시를 비교해서 보시면 좋을 듯 합니다.

( A + B ) * ( C - D )


3. ( A + B ) * ( C - D ) 를 전위 표기법으로 


① 연산을 진행하는 순서(우선순위)에 맞게 괄호로 묶어줍니다.

(( A + B ) * ( C - D ))

② '전위' 표기법이므로 연산자를 해당 괄호 바로 앞(좌측)으로 옮겨줍니다.

* (+( A B ) - ( C D ))

③ 이제 불필요한 괄호들을 모두 제거해줍니다. 

* + A B - C D


4. A + B * C - D 를 후위 표기법으로


① 연산 순서에 따라 괄호로 묶어봅니다. 아래에 적은 것처럼 연산 우선순위에 따라서 괄호를 하나하나 추가해주면 실수하지 않을 수 있습니다.

A + B * C - D

A + ( B * C ) - D

( A + ( B * C ) ) - D

( ( A + ( B * C ) ) - D )

② 이제 위 식을 후위 표기법으로 표현하기 위해서 연산자를 괄호 바로 뒤(오측)으로 옮겨줍니다. 이해를 돕기 위해서 연산 순서에 따라서 하나하나 옮겨서 적었습니다.

( ( A + ( B * C ) ) - D )

( ( A + ( B C ) * ) - D )

( ( A ( B C ) * ) + - D )

( ( A ( B C ) * ) + D ) -

③ 필요 없어 보이는 괄호를 전부다 제거해줍니다. 이 문제에서는 전부다 제거하면 아래의 식처럼 괄호가 전혀 필요없습니다.

A B C * + D -

괄호가 필요없는 이유는, 맨처음 곱하기 연산자(*)가 먼저 시행되므로 B와 C의 곱이 가장 먼저 수행되고, 그 다음으로 앞에 있는 더하기 연산자(+)가 시행되고, 마지막으로 빼기 연산자(-)가 시행되기 때문입니다. 처음엔 다소 어색하지만 한번 두번 보다보면 표기법에 따른 수식 이해가 되신다면 충분히 가능한 수식입니다.


  • 비밀댓글입니다

  • 아무개 2018.12.07 14:18 댓글주소 수정/삭제 댓글쓰기

    4번 A + B * C - D 후위 표기법 답이 다릅니다.

    실제 답은 ABC*+D- 인데, 전개하시면서 마지막 괄호 벗기기 전에 - 위치가 이동되어 다르게 나왔습니다.

    참고부탁드립니다.

    • 말씀하신 사항을 수정했습니다. 제가 정확하게 작성해야 했는데 실수가 있었던 것 같습니다. 앞으로는 이런 실수가 나타나지 않도록 노력하겠습니다.

      정확하게 지적해주셔서 감사드립니다. 제가 스타벅스 커피 키프티콘을 드리고 싶은데, 비밀댓글로 카카오톡 아이디를 남겨주실 수 있나요??