[백준/파이썬] 5692번 팩토리얼 진법 풀이

업데이트:



문제 정보


풀이

문제

팩토리얼 진법으로 표현된 수를 10진수로 변환하는 문제입니다.

코드

import sys; read = sys.stdin.readline

factorial = [1]
for i in range(5): factorial.append(factorial[i] * (i + 1))

result = []
while True:
    n = read()[:-1]
    if int(n) == 0: break

    acc = 0
    for i in range(1, len(n) + 1):
        acc += int(n[len(n) - i]) * factorial[i]

    result.append(acc)

print('\n'.join(map(str, result)))

설명

오른쪽 자리부터 i! 가중치를 곱해 누적하면 팩토리얼 진법 수를 10진수로 변환할 수 있습니다.



댓글남기기