lucyya99   1년 전

문제 해석)

B System : 2~36까지의 숫자가 기수가 되는 시스템. 기수란? 십진법에서 10이 기수, 이진법에서 2가 기수. 10을 초과하면 A부터 Z까지의 대문자 알파벳을 사용함.

수식(f(x)) : RPN 방식으로 입력받음. B-System으로 숫자가 작성되어 있으며, 'x'가 꼭 포함됨. 

x는 값이 변하는 수로, 3번째 줄부터 enter로 구분해 입력받음.

Input :

1 -B, N (Base Number = 기수, N = 앞으로 받을 x들의 수)

2 - x가 포함된 RPN 식, space로 구분되어 있음.

2 이후 라인 - x들을 enter로 구분해서 받음

*RPN을 벗어나는 입력은 없음. B-System으로 작성된 숫자는 양수 (음수 x)

Output :

계산완료 후 마지막 B-System 숫자(혹은 알파벳). 예를 들어, 계산결과 1DA가 나왔다면, A를 출력.

*계산결과가 음수인 경우는 없음

--------------------------------------------------------------------------------------------------------

추가적인 Test Case)

Input

24 4
DA x - 3 * 2 + 1A *
1
2
1A
A

Output

2
K
0
0

--------------------------------------------------------------------------------------------------------

1. RPN은 stack으로 풀면 된다.

2. B System to decimal을 구현할 때는 해당 숫자를 곱해서 더하면 된다.

이 두가지 기준을 가지고 문제를 풀었는데, 계속 시간초과라고 뜹니다.

Python으로 꼭 문제를 풀고 싶은데 시간을 줄이는 방법이 있을까요?

댓글을 작성하려면 로그인해야 합니다.