정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요.
제한사항
2 ≤ num_list의 길이 ≤ 10
1 ≤ num_list의 원소 ≤ 9
초기 코드 작성
처음에 작성한 코드에서는 sum^2
와 같은 형태로 합의 제곱을 계산하려 했다. 하지만 Swift에서 ^
연산자는 제곱이 아닌 비트 XOR 연산자이기 때문에 의도한 대로 작동하지 않았다.
var multiply = 0
var sum = 0
for i in num_list {
multiply *= i
sum += i
}
return multiply < sum^2 ? 1 : 0
제곱 연산 수정
Swift에서 제곱을 구하기 위해서는 sum * sum
을 사용해야 한다는 점을 깨닫고, 코드를 수정했다. 또한 초기 곱셈 변수 multiply
의 값을 0으로 설정했던 것을 1로 변경하여 곱셈 연산이 올바르게 수행되도록 했다.
var multiply = 1
var sum = 0
for i in num_list {
multiply *= i
sum += i
}
return multiply < sum * sum ? 1 : 0
^
연산자는 제곱이 아니라 비트 XOR을 의미한다. 당연하게 코드 보자마자 갈겼는데 언어별 연산자의 의미를 정확히 이해하는 것이 중요하다는 점을 다시 한 번 깨달았다.sum * sum
)을 사용하는 것이 가장 간단하다는 점을 배웠다.