[프로그래머스-기초] 원소들의 곱과 합

JE·2023년 5월 10일
0

코테/코플릿

목록 보기
4/57
post-thumbnail

원소들의 곱과 합

문제 설명

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

제한사항

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

입출력 예

num_listresult
[3, 4, 5, 2, 1]1
[5, 7, 8, 3]0

입출력 예 설명

입출력 예 #1
모든 원소의 곱은 120, 합의 제곱은 225이므로 1을 return합니다.
입출력 예 #2
모든 원소의 곱은 840, 합의 제곱은 529이므로 0을 return합니다.

💻 내가 작성한 코드

function solution(num_list) {
   let numMul = 1;
   let numAdd = 0;
   for(let i = 0; i < num_list.length; i++){
       numMul = numMul * num_list[i]
       numAdd = numAdd + num_list[i]
   }
   numAdd = numAdd ** 2
   if(numMul < numAdd){
       return 1
   }else{
       return 0
   }    
}

💻 리팩토링 하기

function solution(num_list) {
   let numMul = 1;
   let numAdd = 0;
   for(let i in num_list){
       numMul *= num_list[i]
       numAdd += num_list[i]
   }
   return numMul < numAdd ** 2 ? 1 : 0
}
  • for ... in으로 수정해 주었다.
  • numMul *= num_list[i]numMul = numMul * num_list[i]와 같은 표현이다.
  • numAdd = numAdd ** 2를 조건문 안에 넣어주었다.
  • if 문 대신 삼항 연산자를 사용해 1줄로 표현했다.

✏️ 마치며

같은 코드지만 좀 더 간결성 있게 되었다.

처음은 어떻게든 통과하려고 작성했고
그 이후에는 좀 더 깔끔하게 작성할 수 있는 방법이 있는지 생각하며
작성해 보았다.

삼항 연산자의 경우 간단한 조건문일 때 사용하면 좋지만
조건이 많고 복잡할 때에는 if문을 사용하는게 좋다고 한다.

profile
[프론트 애송이] 작은 깨달음도 기록하기

0개의 댓글