일단 문제소개를 하자면 상근이가 독특하다.
숫자를 10진수 그대로 읽지 않고
해당 수가 719가 주어지면 7 * (7의 자릿수의 팩토리얼) 이런식으로 모든 자리에 있는 수에 대하여 더해야지만 10진수로 읽을 수 있다.
코드는 간단하다.
5가지의 팩토리얼 진법이 나오므로 input().split()로 각각에 대한 반복문을 돌린다.
해당 수가 문자열이니까 길이를 구하고 2중 반복문을 만든다.
내부 반복문마지막에서 이전에 구한 len에는 1씩 빼고 그 전에 해당 len의 팩토리얼과 반복문으로 받은 j를 곱해주고 answer에 더한다.
내부 반복문이 끝날 때마다 출력해주면 완벽!
import sys
import math
num = input()
for index, i in enumerate(num.split()):
len_num = len(i)
answer = 0
for j in i:
now = math.factorial(int(len_num))
answer += now * int(j)
len_num -= 1
if index == 4:
print(answer, end='')
break
print(answer)
하지만 통과를 못했다. split이 속도가 느려서 sys로 readline을 받아와서 strip해야 한단다...
추후 고치겠다.