폴란드 표기법 변환기
중위, 전위 폴란드, 후위 역폴란드 표기법 사이에서 수식을 변환하고 읽기 쉬운 결과를 바로 확인하세요.
수식 표기법 변환
수식을 입력하고 원본 및 대상 표기법을 선택하세요.
폴란드 표기법 변환 안내
폴란드 표기법은 값 사이에 연산자를 두는 일반적인 배치에 의존하지 않고 수학식과 논리식을 쓰는 방법입니다. 보통의 중위 표기법은 A + B처럼 피연산자 사이에 연산자를 둡니다. 전위 표기법은 연산자를 앞에 두어 + A B로, 후위 표기법은 뒤에 두어 A B +로 씁니다. 전위 형식은 폴란드 표기법, 후위 형식은 역폴란드 표기법 또는 RPN이라고 합니다. 연산자와 피연산자의 순서가 명확하므로 대개 괄호가 필요하지 않습니다.
이 변환기는 중위에서 전위, 중위에서 후위, 전위에서 중위, 후위에서 중위로의 네 가지 변환을 지원합니다. 중위 입력에서는 식별자, 십진수, 괄호와 덧셈·뺄셈·곱셈·나눗셈·거듭제곱 연산자를 인식합니다. 표준 우선순위에 따라 거듭제곱을 먼저, 곱셈과 나눗셈을 그다음, 덧셈과 뺄셈을 마지막으로 처리합니다. 괄호로 순서를 바꿀 수 있습니다. 거듭제곱은 오른쪽 결합이므로 a ^ b ^ c는 a ^ (b ^ c)를 뜻합니다.
중위 변환은 션팅 야드 알고리즘으로 토큰을 우선순위에 맞게 배치합니다. 연산자는 스택에 잠시 보관하고 값은 출력으로 바로 이동합니다. 전위 출력은 생성된 후위 시퀀스에서 구성합니다. 전위 및 후위에서 중위로 변환할 때는 부분 수식을 담는 스택을 사용합니다. 연산자를 만날 때마다 해당하는 두 피연산자를 꺼내 결합하고 괄호로 감싼 뒤 스택에 다시 넣습니다. 마지막 스택 항목이 완전한 중위 수식입니다.
전위와 후위 입력에서는 공백이 각 피연산자와 연산자를 구분하므로 중요합니다. *+ABC가 아닌 * + A B C로 작성하세요. 중위 수식은 괄호와 연산자 문자가 토큰을 구분하므로 공백을 넣거나 생략할 수 있습니다. 변환기는 변수명과 숫자 값을 유지하면서 결과를 쉽게 살펴보도록 공백과 괄호를 추가합니다.
표기법 변환은 수식 트리, 컴파일러 구문 분석, 스택 머신, 계산기, 자료구조를 공부할 때 유용합니다. 후위 수식은 간단한 스택으로 왼쪽에서 오른쪽으로 계산할 수 있고, 전위 수식은 비슷하게 오른쪽에서 왼쪽으로 처리할 수 있습니다. 익숙한 중위 수식을 다른 형식으로 바꾸면 연산자 우선순위가 명확해져 수식 분석 연습을 확인하기 좋습니다.
폴란드 표기법 예시
서로 다른 표기법으로 나타낸 동등한 수식입니다.
| 입력 | 출력 | 변환 |
|---|---|---|
| (A + B) * C - D | - * + A B C D | 중위 → 전위 |
| A + B * C | A B C * + | 중위 → 후위 |
| * + A B - C D | ((A + B) * (C - D)) | 전위 → 중위 |
| A B + C D - * | ((A + B) * (C - D)) | 후위 → 중위 |
표기법 변환기 사용 방법
- 네 가지 변환 유형 중 하나를 골라 입력과 목표 표기법을 지정하세요.
- 수식을 입력하세요. 전위 또는 후위 입력에서는 모든 토큰 사이에 공백을 넣으세요.
- 변환을 선택해 수식을 분석하고 동등한 표기법을 표시하세요.
- 결과의 연산자 순서를 확인하거나 초기화로 수식을 지우고 다시 시작하세요.
폴란드 표기법 변환 FAQ
폴란드 표기법이란 무엇인가요?
연산자를 피연산자 앞에 두는 방식으로 A + B는 + A B가 됩니다. 각 연산자의 피연산자 수를 알면 괄호가 필요하지 않습니다.
역폴란드 표기법이란 무엇인가요?
연산자를 피연산자 뒤에 두는 방식으로 A + B는 A B +가 됩니다. 후위 표기법이라고도 하며 보통 스택으로 계산합니다.
전위와 후위 수식에 공백이 필요한가요?
네. 여러 문자로 된 값을 명확히 구분하도록 토큰 사이에 공백이 필요합니다. 예를 들어 +total25 대신 + total 25로 쓰세요.
연산자 우선순위는 어떻게 처리하나요?
중위 수식에서 거듭제곱이 가장 먼저이며 곱셈과 나눗셈, 덧셈과 뺄셈 순으로 이어집니다. 괄호는 이 기본 순서보다 우선합니다.
숫자와 변수명을 함께 사용할 수 있나요?
네. 피연산자는 십진수 또는 문자, 숫자, 밑줄로 된 식별자일 수 있습니다. 변환기는 수치를 계산하지 않고 토큰 순서만 바꿉니다.