Daily Algorithm - Day 19

105·2025년 1월 9일
0

Daily Algorithm

목록 보기
20/30

Factorial Digit Sum

n!n! means n×(n1)×...×3×2×1n × (n − 1) × ... × 3 × 2 × 1.

For example, 10!=10×9×...×3×2×1=362880010! = 10 × 9 × ... × 3 × 2 × 1 = 3628800,
and the sum of the digits in the number 10!10! is 3+6+2+8+8+0+0=273 + 6 + 2 + 8 + 8 + 0 + 0 = 27.

Find the sum of the digits in the number 100!100!.

100!100!의 자릿수를 모두 합친 값을 구하는 문제이다. 내가 생각한 구현 방식은 다음과 같다.

  1. n!n!을 계산하는 함수를 작성
  2. n!n!string으로 변환 후 map()을 통해 각 자릿수로 이루어진 map객체를 생성 후sum()을 통해 모든 자릿수의 합을 출력하는 함수를 작성

간단하니 한번에 작성해보자

//Python

# n 팩토리얼
def factorial(n):
    result = 1;
    for i in range (n):
        result *= i + 1
    return result

# solution
def factorial_digit_sum(n):
    factor = str(factorial(n))  # string으로 변환 후
    splited_factor = map(int, factor)  # 각 글자를 int로 변환하여 map 객체로 생성
    return sum(splited_factor)  # 모든 자릿수를 더한 값을 출력

print(factorial_digit_sum(100))

>>> 648 #correct

오늘은 여기까지
-2025.01.09-

profile
focus on backend

0개의 댓글