[TIL][프로그래머스/Swift] 원소들의 곱과 합

Eden·2024년 12월 2일
0

TIL

목록 보기
58/92
post-thumbnail

문제 설명

정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요.

제한사항

2 ≤ num_list의 길이 ≤ 10
1 ≤ num_list의 원소 ≤ 9

풀이 과정

  1. 초기 코드 작성
    처음에 작성한 코드에서는 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
  2. 제곱 연산 수정
    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

배운 점

  • 연산자의 의미 정확히 이해하기: Swift에서 ^ 연산자는 제곱이 아니라 비트 XOR을 의미한다. 당연하게 코드 보자마자 갈겼는데 언어별 연산자의 의미를 정확히 이해하는 것이 중요하다는 점을 다시 한 번 깨달았다.
  • 변수 초기화의 중요성: 곱셈을 수행할 때는 초기값을 1로 설정해야 함을 배웠다. 초기값을 잘못 설정하면 전체 로직에 영향을 미칠 수 있음을 다시 확인했다. x * 0 은 0인데...
  • 제곱 계산 방법: Swift에서 제곱을 계산할 때는 직접 곱셈(sum * sum)을 사용하는 것이 가장 간단하다는 점을 배웠다.
profile
Frontend🌐 and iOS

0개의 댓글