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