연습장
24. 원소들의 곱과 합 본문
Q. 정수가 담긴 리스트 num_list가 주어질 때, 모든 원소들의 곱이 모든 원소들의 합의 제곱보다 작으면 1을 크면 0을 return하도록 solution 함수를 완성해주세요.
제한사항
2 ≤ num_list의 길이 ≤ 10
1 ≤ num_list의 원소 ≤ 9
1. 모든 원소의 곱이 // for 문으로 각각 가져와서 곱 할 수 있다.
2. 모든 원소들의 합의 제곱 // for 문으로 각각 가져와서 더하고 for 문 종료후 제곱
작으면 1 크면 0 // if 문 , 삼항연산자로 위의 둘을 비교
num1 // 배열 원소들의 곱
num2 // 배열 원소들의 합 의 제곱
function solution(num_list) {
let num1 = 1;
let num2 = 0;
for (let i = 0 ; i < num_list.length; i++){
num1 = num1 * num_list[i];
num2 += num_list[i];
}
return num1 < (num2)**2 ? 1 : 0 ;
}
배열을 반복하기 때문에 -> forEach 도 가능
function solution(num_list) {
let num1 = 1;
let num2 = 0;
num_list.forEach((x,i) => {
num1 *= num_list[i]
num2 += num_list[i]
})
return num1 < (num2)**2 ? 1 : 0 ;
}
다른사람 풀이
function solution(num_list) {
let accMul = 1
let accSum = 0
for (const num of num_list) {
accMul *= num
accSum += num
}
return accMul < accSum ** 2 ? 1 : 0
}
내가 푼것과 유사한데
한가지 다른점이 있어서 가져왔다.
for( const num of num_list ) 인데
배열에서 하나씩 가져온것을 num 에 저장하는거 같다
마치 파이썬의 for i in my_list 와 비슷한것같다.
for ( let x of array ) { ~~~ }
for (배열의 원소 of 배열 ) { 반복 명령 }
다만, map이나 forEach 처럼 index를 가져오지 못한다.
index가 필요한 경우라면 다른 메서드를 활용해야만 한다.
map과 forEach 메서드의 경우에는 반복 횟수가 시작할 때 미리 정해져있지만
for.. of문에서는 매 반복 때 마다 배열의 상태가 업데이트된다.
만약 반복명령 중 배열의 원소의 개수가 늘어나면, 반복횟수도 함께 늘어난다.
reference
'프로그래머스 > 0단계' 카테고리의 다른 글
26. 마지막 두 원소 (0) | 2023.06.19 |
---|---|
25. 이어 붙인 수 (0) | 2023.06.19 |
23. 주사위 게임 2 (0) | 2023.06.19 |
22. 등차수열의 특정한 항만 더하기 (0) | 2023.06.19 |
21. 코드 처리하기 (0) | 2023.06.19 |