(1) 문제 상황
정수로 이루어진 리스트 int_list가 주어진다.
리스트에 포함된 모든 값의 곱이, 모든 값의 합을 제곱한 값보다 작으면 1, 그렇지 않으면 0을 반환하는 solution 함수를 작성하시오.
(2) 나의 풀이
def solution(int_list):
m_list = 0
s_list = 0
for i in int_list:
m_list *= i
s_list += i
if m_list < (s_list ** 2):
return 1
else:
return 0
처음의 풀이는 다음과 같이 작성하였다.
하지만 테스트는 통과하지 못하였다.
그 이유를 소스코드를 보며 다시 생각해 보니 m_list는 int_list의 있는 값을 곱해주는 것인데 처음에 0으로 초기화를 해두어서 무슨 수가 들어있던 0*n = 0 이므로 오류가 났던 것이다.
추가로 리스트 안에 있는 값들을 모두 더할 때 s_list라는 변수를 만들어 사용했는데, 이는 sum() 함수를 이용해 해결할 수 있었다.
(3) 배운점
sum()을 이용하면 리스트 안에 원소들의 합을 구할 수 있다.
리스트 안에 원소들의 곱을 하려면 0이 아닌 1로 초기화해주어야 한다.
def solution(int_list):
mul = 1
for i in int_list:
mul *= i
return int(mul < sum(int_list) ** 2)
'Python' 카테고리의 다른 글
| [Python] 가상환경의 필요성, 프로젝트 적용 방법 (1) | 2026.03.04 |
|---|---|
| [Python] 코딩 테스트 중 자주 실수하는 부분 | 불필요한 코드, 비직관적 인덱싱 (0) | 2026.02.28 |
| [Python] 합격 여부 판단 프로그램 문제 (0) | 2026.01.17 |
| [Python] 변수와 입력 사용하기 (1) | 2026.01.10 |
| [Python] 세미콜론, 주석, 들여쓰기 (0) | 2026.01.08 |