<!--wrong my solution-->
<html>
<head>
<meta charset="UTF-8">
<title>출력결과 - 섹션1-6 - 홀수</title>
</head>
<body>
<script>
function solution(arr) {
// 주어지는 값 배열이 주어짐
// 구해야하는 값 배열중 홀수들의 총합
// 홀수들 중의 최솟값
let total = 0;
let min = 10000000;
// 배열중 홀수들의 총합 구하기
for (let i =0; i < arr.length; i++) {
if (arr[i] %2 !== 0)
total = total + arr[i];
}// end for
return total;
// 홀수들 중에서 최솟값 구하기
for (let i = 0; i < arr.length; i++) {
if(arr[i] < min)
min = arr[i];
}// end for
return min;
}
let arr = [1,2,3,4,5,6];
console.log(solution(arr));
</script>
</body>
</html>
구하는값 입력값 모두 이해했는데 return 문을 쓰면서도 return문은 실행을 그만하고 제어권을 반납하는 건데 두개 쓸 수 있나..? 라는 생각으로 계속 짰다;;
물론 따로 실행했을 때 잘나오긴 한다;;
풀이 보니까 배열에 넣으면 되는 거였음;
<!--correct my solution-->
<html>
<head>
<meta charset="UTF-8">
<title>출력결과 - 섹션1-6 - 홀수</title>
</head>
<body>
<script>
function solution(arr) {
// 주어지는 값 배열이 주어짐
// 구해야하는 값 배열중 홀수들의 총합
// 홀수들 중의 최솟값
let answer = [];
let total = 0;
let min = 10000000;
// 배열중 홀수들의 총합 구하기
for (let i =0; i < arr.length; i++) {
if (arr[i] %2 !== 0)
total = total + arr[i];
}// end for
answer.push('총합:::', total);
// 홀수들 중에서 최솟값 구하기
for (let i = 0; i < arr.length; i++) {
if(arr[i] < min)
min = arr[i];
}// end for
answer.push('최솟값:::', min)
return answer;
}
let arr = [1,2,3,4,5,6];
console.log(solution(arr));
</script>
</body>
</html>
<!--teacher's solution-->
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
function solution(arr){
let answer=[];
let sum=0, min=1000;
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));
</script>
</body>
</html>
for of 문 써서 인덱스로 접근안하고 사용했음 좀 더 간단해보이는 듯
선생님 답안은 for 문 안에서 다 처리해줬음!
답이 두개가 넘는 경우는 배열로 push해주자~~
배열을 탐색하고 싶나요!?? for문을 쓰세요!