level1_원소들의 곱과 합

2024. 6. 24. 22:12파이썬_알고리즘(코딩테스트)/level1

 

내가 제출한 코드

def solution(num_list):
    a = 1
    b = 0
    for i in num_list:
        a *= i
        b += i
    if a < (b * b):
        return 1
    else:
        return 0

 

  • a는 리스트의 모든 요소를 곱한 값을 저장할 변수이다.
  • b는 리스트의 모든 요소를 합한 값을 저장할 변수이다.
  • 리스트 num_list의 각 요소 i에 대해 반복한다.
  • a *= i : 리스트의 모든 요소를 곱한 값을 a에 저장한다.
  • b += i : 리스트의 모든 요소를 더한 값을 b에 저장한다.
  • 만약 a가 b의 제곱(합의 제곱)보다 작다면 1을 반환하고, 그게 아니라면 0을 반환한다.

 

 

 

다른 사람이 제출한 코드1

def solution(num_list):
    mul = 1
    for n in num_listL
        mul *= n
    return int(mul < sum(num_lsit) ** 2)
  • mul은 리스트의 모든 요소를 곱한 값을 저장할 변수이다.
  • 리스트의 모든 요소를 곱한 값을 mul에 저장한다.
  • return int(mul < sum(num_list) ** 2)
    • sum(num_list)는 리스트의 모든 요소를 더한 값을 반환한다.
    • sum(num_list) ** 2는 리스트의 모든 요소의 합을 제곱한 값을 의미한다.
    • mul < sum(num_list) ** 2는 mul이 리스트 요소의 합의 제곱보다 작은지 비교한다.
    • int(mul < sum(num_list) ** 2)는 이 비교의 결과 (True 또는 False)를 정수형으로 변환하여 반환한다. True는 1로, False는 0으로 변환된다.

 

다른 사람이 제출한 코드2

import math

def solution(num_list):
    answer = 0
    if math.prod(num_list) < (sum(num_list)**2):
        answer = 1
    return answer
  • math 모듈을 임포트하여 수학 관련 함수들을 사용할 수 있게 한다.
  • 변수 answer를 0으로 초기화한다.
  • math.prod(num_list) : 리스트 num_list의 모든 요소를 곱한 값을 반환한다.
  • (sum(num_list) ** 2) :  리스트 num_list의 모든 요소를 더한 값을 제곱한 값을 의미한다.
  • if math.prod(num_list) < (sum(num_list) ** 2)는 num_list의 곱이 합의 제곱보다 작은지 비교한다.
  • 만약 조건이 참이면 answer을 1로 설정한다.
  • 최종적으로 조건이 참이면 1, 거짓이면 0을 반환한다. 

 

math.prod() 메서드는 주어진 iterable에서 요소의 곱을 반환한다.

math.prod(iterable, start)

 

 

 

math.prod()를 찾다가 발견한 홈페이지인데...

여기... 너무좋은거..........같다.

https://ko.w3hmong.com/