숫자 숏코딩
시간 제한1초메모리 제한1024 MB
N이 주어질 때, 숫자와 *, ^ 연산자만으로 N을 나타내는 가장 짧은 후위 표기 식을 구합니다.
문제
양의 정수 이 주어진다. 0부터 9까지의 숫자와 곱하기 *, 거듭제곱 ^ 연산기호를 이용하여 을 표현하는 가장 짧은 길이의 식을 구하시오.
식은 후위 표기법으로 나타내고, 각 수 또는 연산기호는 공백으로 구분한다. 단, 공백은 식의 길이에 포함하지 않는다.
입력
양의 정수 이 주어진다.
출력
을 표현하는 가장 짧은 길이의 식을 후위 표기법으로 출력한다. 가능한 식이 여러 개라면 그중 아무거나 하나를 출력한다.
힌트
후위 표기법은 연산자를 연산 대상의 뒤에 쓰는 표기법이다. 식을 앞에서부터 읽으며 수는 스택에 저장하고, 연산자를 만나면 스택에서 두 수를 꺼내 계산한 뒤 결과를 다시 스택에 넣는다.
예를 들어 후위 표기식 3 2 3 * ^는 다음과 같이 로 계산된다.
- , , 이 차례로 스택에 들어간다.
- 스택에서 , 을 꺼내 곱한 값 을 스택에 넣는다.
- 스택에서 , 을 꺼내 거듭제곱한 값 를 스택에 넣는다.