Daily Algorithm - Day 15

105·2025년 1월 5일
0

Daily Algorithm

목록 보기
16/30

Power Digit Sum

215=327682^{15} = 32768 and the sum of its digits is 3+2+7+6+8=263 + 2 + 7 + 6 + 8 = 26.
What is the sum of the digits of the number 210002^{1000}?

210002^{1000}의 각 자릿수를 모두 합한 값을 구하는 문제이다.
내가 생각한 구현 방식은 다음과 같다.

  1. 2n2^n을 계산 후 string으로 변환.
  2. map()을 통해 string의 1글자씩 int화.
  3. sum()을 통해 합을 구한다.

그럼 코드를 작성해보자.

//Python

def solution (n):
    string = str(2**n)
    mapping = map(int, string)
    result = sum(mapping)
    return result

print(solution(1000))

>>> 1366

이번엔 너무 빨리 끝났으니, 파이썬의 장점을 활용해 1줄 코드도 구현을 해보자.

listing = []
for i in str(2**1000):
	listing.append(int(i))
print(sum(listing))
##########################################################
>>> print(sum([int(i) for i in str(2**1000)]))

>>> 1366

코드를 작성할 때 편하지만, 가독성이 좋은 편이 아니다.
혼자서 모든 프로그램을 짤 것이 아니라면 정석적인 방식을 추구하는게 좋을 것이다.

오늘은 여기까지

-2025.01.05-

profile
focus on backend

0개의 댓글