문제:

내가 쓴 코드:
<html>
<head>
<meta charset="UTF-8" />
<title>출력결과</title>
</head>
<body>
<script>
function solution(arr) {
let answer = [],
oddnum = 0,
minodd = Number.MAX_SAFE_INTEGER;
for (i = 0; i < arr.length; i++) {
if (arr[i] % 2 != 0) {
oddnum += arr[i];
if (minodd > arr[i]) minodd = arr[i];
}
}
answer.push(oddnum, minodd);
return answer;
}
arr = [12, 77, 38, 39, 53, 92, 85];
console.log(solution(arr));
</script>
</body>
</html>
모범 답안:
<html>
<head>
<meta charset="UTF-8">
<title>출력결과</title>
</head>
<body>
<script>
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));
</script>
</body>
</html>
Impressive Point & Learning Point
- for문 선언시에 "let x of arr" 구문을 통해 x 자체에 배열 arr[x] = x로, x값 자체를 arr의 x번째 값을 가져와 사용했다. 이 부분이 인상깊었고, 전체 코드도 보다 직관적이고 깔끔하게 볼 수 있어서 좋았던 부분이다.
- JS에서 "===" 와 "=="의 차이점(===의 경우에는 변수 타입까지 체크해보는 경우이다)을 알 수 있었고, 알고리즘 코드 작성시에는 전체 코드에서 둘 중에 하나의 방법으로 통일시켜주는 것이 바람직하다.