문제
후위표기법으로 표시된 방정식 f(x)가 주어졌을 때 f(x) = 0 을 만족하는 x를 구하는 프로그램을 작성하라.
f(x)에는 숫자와, 미지수 x, 연산자로 +, -, *, /가 주어진다. 가령 f(x) = (4x+2)/2 = 0 라고 주어졌을 경우, 후위표기법으로는 다음과 같이 표시된다.
4 X * 2 + 2 /
이 때 f(x) = 0 을 만족시키는 답은 x = -1/2 이다.
입력
입력은 한줄로 주어지며, 최대 30개의 토큰이 주어진다. 토큰 사이에는 공백이 한칸 주어진다. 주어지는 토큰의 종류는 다음과 같다.
0 이상 9 이하의 정수 +, -, *, - 연산자 미지수 x를 뜻하는 대문자 X
입력은 f(x)를 뜻하는 수식이 후위표기법으로 이뤄지며, 토큰 X는 입력에서 최대 한번 주어지게 된다. 또한 나눗셈을 할 때, 나누는 수가 0이 되는 경우는 존재하지 않는다.
출력
출력은 다음과 같이 이뤄져야 한다.
X = p/q : 만약 f(x) = 0 이 유일한 해를 가지고 있을 때, p/q(p분의 q)꼴로 출력을 한다. 여기서 p와 q는 서로소(1보다 큰 공통의 약수를 가지지 않은 숫자)로 표현되야 하며, q는 양수가 되어야 한다. NONE : f(x) = 0 에 대한 해가 존재하지 않을 때 다음과 같이 출력한다. MULTIPLE : f(x) = 0 의 해가 여럿 존재할 때 다음과 같이 출력한다.
예제
4 X * 2 + 2 /
X = -1/2
힌트