문제 설명
중위 표현식(Infix Notation)은 연산자가 피연산자 사이에 위치하는 표기법으로, 사람이 읽고 쓰기는 편하지만 연산자 우선순위를 괄호로 명시해야 한다는 특징이 있습니다. 후위 표현식(Postfix Notation)은 연산자가 피연산자 뒤에 위치하는 표기법으로, 괄호 없이도 연산순서를 명확히 지정할 수 있습니다.
연산자 우선순위는 *,/이 +,-보다 높으며, 동일 수준의 우선순위 연산에 대해서는 수식의 왼쪽에 위치한 연산자가 더 우선순위가 높습니다.
중위 표현식 expr이 주어질 때, 동일한 계산 순서를 유지하는 후위 표현식으로 변환하여 반환하는 solution 함수를 작성하시오.
expr는 괄호 문자를 포함하지 않으며, 모든 피연산자는 대문자 알파벳 한 글자로만 주어지고, 모든 연산자는 +, -, *, / 중 하나로만 주어집니다.
제한 사항
expr의 길이는 1 이상 100,000 이하입니다.expr은 항상 유효한 중위 표현식이 입력으로 주어집니다.
예시 테스트케이스 설명
| 테스트케이스 번호 | expr | return |
|---|---|---|
| 1 | "A+B*C" | "ABC*+" |
| 2 | "A-B+C" | "AB-C+" |
| 3 | "A+B*C/D" | "ABC*D/+" |
1번 테스트케이스 설명
*연산자가+보다 우선순위가 높으므로,"B" * "C"가 먼저 계산되어야 합니다. →BC*- 이후
"A" + "BC*"가 계산되어야 합니다. →ABC*+ - 따라서
ABC*+를 반환합니다.
2번 테스트케이스 설명
+와-는 동일한 우선순위를 가지며, 왼쪽에서 오른쪽으로 계산됩니다.- 먼저
"A" - "B"가 계산되어야 합니다. →AB- - 이후
"AB-" + "C"가 계산되어야 합니다. →AB-C+ - 따라서
AB-C+를 반환합니다.
3번 테스트케이스 설명
*,/가+보다 우선순위가 높아 먼저 계산됩니다."B" * "C"가 먼저 계산되어야 합니다. →BC*- 이후
"BC*" / "D"가 계산되어야 합니다. →BC*D/ - 마지막으로
"A" + "BC*D/"가 계산됩니다. →ABC*D/+ - 따라서
ABC*D/+를 반환합니다.