본문 바로가기

프로그램/컴퓨터일반

수식의 전위, 중위, 후위 표기법 + 예시 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 ) -
 
깨끗한나라 3겹 데코 순수 프리미엄 와이드 천연펄프 롤화장지 30m, 30롤, 1개
③ 필요 없어 보이는 괄호를 전부다 제거해줍니다. 이 문제에서는 전부다 제거하면 아래의 식처럼 괄호가 전혀 필요없습니다.
 
A B C * + D -
 
괄호가 필요없는 이유는, 맨처음 곱하기 연산자(*)가 먼저 시행되므로 B와 C의 곱이 가장 먼저 수행되고, 그 다음으로 앞에 있는 더하기 연산자(+)가 시행되고, 마지막으로 빼기 연산자(-)가 시행되기 때문입니다. 처음엔 다소 어색하지만 한번 두번 보다보면 표기법에 따른 수식 이해가 되신다면 충분히 가능한 수식입니다.

 

반응형
LIST