정수가 담긴 리스트 num_list
가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요.
um_list
길이 ≤ 10um_list
원소 ≤ 9num_list | result |
---|---|
[3, 4, 5, 2, 1] | 1 |
[5, 7, 8, 3] | 0 |
입출력 예 설명
입출력 예 #1
입출력 예 #2
def solution(num_list): mul = 1 sum1 = 0 for i in range(len(num_list)): mul *= num_list[i] sum1 += num_list[i] print(mul, sum1) if mul > sum1**2: answer = 0 else: answer = 1 return answer
코드 간단 소개
- mul = 1, sum = 0으로 초기화, 곱할때는 1이 초기값이어야하고, 더할때는 0이 초기값이어야한다.
- num_list의 길이만큼 for문을 돈다.
- for문을 돌면서 곱하기와 더하기를 각각 한다.
- for문을 빠져나와 곱셈을 한 것이 더 많은지 덧셈에 제곱이 더 큰지 if문으로 판단한다.
- mul이 더 크면 0을 아니면 1을 return한다.
def solution(num_list): s=sum(num_list)**2 m=eval('*'.join([str(n) for n in num_list])) return 1 if s>m else 0
- sum()함수를 사용하여 num_list에 있는 값들을 모두 더하고 제곱을 한다.
- eval()함수를 사용하여 곱하기를 한다.
- eval()안에 식을 문자열로 넣기 위해 ''.join()으로 num_list 값 사이에 을 넣는다.
- s가 m보다 크면 1을 아니면 0을 return한다.
def solution(num_list): mul = 1 for n in num_list: mul *= n return int(mul < sum(num_list) ** 2)
- mul 을 1로 초기화한다.
- for 문을 돌며 mul에 num_list에 있는 값을 하나씩 곱한다.
- mul보다 sum(num_list) ** 2가 크면 True 아니면 False
- int()로 변환하여 True는 1로 False는 0으로 반환된다.