You are given a positive integer. Your function should calculate the product of the digits excluding any zeroes.
For example: The number given is 123405. The result will be 1*2*3*4*5=120 (don't forget to exclude zeroes).
Input: A positive integer.
Output: The product of the digits as an integer.
- 0이 포함될 수 있는 양의 정수가 주어지고, 0을 제외한 나머지 숫자들을 모두 곱한 값을 구한다
1
2
3
4
5
6
7
8
9
10
|
def checkio(number: int) -> int:
# from functools import reduce
n = list(str(number))
# num = [i for i in n if i != "0"]
# result = reduce(lambda x, y : int(x)*int(y), num)
m = 1
for i in n:
if int(i) != 0:
m *= int(i)
return m
|
cs |
주어진 숫자 하나하나를 str 요소로 가지는 리스트를 만들고
-> 리스트를 반복하며 해당 요소가 0 이 아니면 계속 곱한다
* 리스트에 있는 요소들을 모두 곱하는 방식으로 푸니까 reduce를 사용해서도 가능할 것 같았다
그런데 reduce는 리스트의 요소가 1개면 실행이 안되서 쓰지못했다
'Algorithm > Checkio' 카테고리의 다른 글
[Checkio] Scientific Expedition. Sum by Type (0) | 2020.06.17 |
---|---|
[Checkio] Electronic station. Surjection Strings (0) | 2020.06.11 |
[Checkio] HOME. Bigger Price (0) | 2020.06.09 |
[Checkio] HOME. Sort Array by Element Frequency (0) | 2020.06.08 |