❓7개의 자연수가 있을 때, 홀수인 자연수를 모두 골라서 합을 구하고,
그 홀수들 중 최솟값을 찾으시오.
function solution(arr) {
let answer=[];
return answer;
}
이번 문제는 답을 두 개 리턴해야하니까
answer에다가 답 두 개를 푸쉬해서 배열을 리턴할 것이다.
이제는 for문이 아닌, for of문(반복 수행)을 사용할 것이다.
let answer=[];
let sum=0, min=Number.MAX_SAFE_INTEGER;
for(let x of arr){
if(x%2 === 1){
}
}
return answer;
}
보기 쉽게 x 변수를 설정해서 arr의 값을 받아온다.
그리고 그 x를 %2해서 1이 남는다면 홀수니까 더해준다.
그리고 sum 변수를 만들어주고 초기값을 0으로 설정.
min 변수도 만들어줘서 초기값을 안전하게 가장 큰 수로 설정해준다.
sum+=x;
누적할 때는
sum=sum+x;
이런식으로 작성이 가능하지만,
sum+=x;이렇게 축약 형태로도 가능하다.
+= 자체가 연산자 한 개이다.
첫번째 식은 연산을 두 번하는것이고
+=로 하면 한 번 하는 것!
function solution(arr) {
let answer=[];
let sum=0, min=Number.MAX_SAFE_INTEGER;
for(let x of arr){
if(x%2 === 1){
sum+=x;
if(x<min) min=x;
}
}
answer.push(sum);
answer.push(min);
return answer;
}
arr = [12, 77, 38, 41, 53, 92, 85];
console.log(solution(arr));
그리고 그 홀수중에 최솟값을 구해야 하니까
x<min , min=x;라고 해준다.
그리고 각각 sum과 min을 answer에 push해준다.
'알고리즘' 카테고리의 다른 글
JS | 일곱 난쟁이 찾아내기 (0) | 2021.08.30 |
---|---|
JS | 10부제 위반 차량 출력하기 (0) | 2021.08.23 |
JS | 최솟값 구하기 (0) | 2021.08.18 |
JS | 1부터 N까지 합 출력하기 (0) | 2021.08.17 |
JS | 연필개수 (0) | 2021.08.12 |