3. < 가장 작은 수 >
숫자 요소로 이루어진 배열이 인자로 주어졌을 때, 다음과 같은 조건을 만족하는 함수를 작성해 주세요!
📌 각 배열의 숫자 중 가장 작은 숫자를 반환해야 합니다.
📌 배열 내의 숫자가 중복되는 경우는 없습니다.
📌 빈 배열이 주어질 경우는 고려하지 않아도 됩니다.
+--------------------------------------------------------------------+
| arr | 리턴 값 |
+--------------------------------------------------------------------+
| [5, 4, 3, 2, 1] | 1 |
+--------------------------------------------------------------------+
| [4, 5, 1, 2, 3] | 1 |
+--------------------------------------------------------------------+
| [10, 7, 13, 2, 6] | 2 |
+--------------------------------------------------------------------+
*/
const arr1 = [10];
const arr2 = [4, 10, 1, 5];
const arr3 = [13, 5, 7, 3, 10, 9];
[ my answer ]
function findMinNumber(arr) {
let min = arr[0];
for(let i=1; i < arr.length; i++){
if (arr[i] < min){
min = arr[i];
}
}
return min;
}
==> 설명
min 변수에 인덱스 0을 할당시켜놓고, for문 시작을 1로 한다.
arr.length 로 길이를 찾고 그 중 가장 작은 수를 리턴한다.
const result1 = (findMinNumber(arr1) === 10);
const result2 = (findMinNumber(arr2) === 1);
const result3 = (findMinNumber(arr3) === 3);
if (
result1 &&
result2 &&
result3
) {
alert("🎉");
}
console.log(result1);
4. < 묻고 더블로 >
숫자 요소로 이루어진 배열이 인자로 주어졌을 때, 다음과 같은 조건을 만족하는 함수를 작성해 주세요!
📌 배열의 요소가 2번 반복되는 새로운 배열이 반환되어야 합니다.
📌 반환된 배열은 인자로 들어간 배열 길이의 2배가 되어야 합니다.
📌 빈 배열이 주어질 경우는 고려하지 않아도 됩니다.
+--------------------------------------------------------------------+
| arr | 리턴 값 |
+--------------------------------------------------------------------+
| [1, 2] | [1, 2, 1, 2] |
+--------------------------------------------------------------------+
| [1, 2, 3] | [1, 2, 3, 1, 2, 3] |
+--------------------------------------------------------------------+
| [5, 7, 3, 1] | [5, 7, 3, 1, 5, 7, 3, 1] |
+--------------------------------------------------------------------+
*/
const arr1 = [1, 2, 1];
const arr2 = [1, 3, 5, 3, 1];
const arr3 = [1, 6, 8, 4, 2, 3];
[ my answer ]
function doubleArray(arr) {
let result = [];
for(let i = 0; i <2; i++){
result.push(...arr);
}
return result;
}
==> 설명
push() 메서드는 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환함.
배열을 한번 복사하라는 의미로 이해했고, 최근에 스프레드 연산자(전개연산자) 배운것이 생각나서
...arr사용하여 push해줬다.
스프레드 연산자 (...) - 배열의 모든 개별 원소를 풀어 배열에 넣는다.
아 답답하다 내가 사용한걸 제대로 설명할 수 있어야하는데.. 쩝
const result1 = doubleArray(arr1); // [1, 2, 1, 1, 2, 1]를 반환해야 합니다.
const result2 = doubleArray(arr2); // [1, 3, 5, 3, 1, 1, 3, 5, 3, 1]를 반환해야 합니다.
const result3 = doubleArray(arr3); // [1, 6, 8, 4, 2, 3, 1, 6, 8, 4, 2, 3]를 반환해야 합니다.
if (
checkResult(result1, arr1) &&
checkResult(result2, arr2) &&
checkResult(result3, arr3)
) {
alert("🎉");
}
console.log(result1);
// 결과값 확인을 위한 함수이니 신경쓰지 않으셔도 됩니다.
function checkResult (result, arr) {
if (result.length !== (arr.length * 2)) {
return false;
}
for (let i = 0; i < result.length; i++) {
if (result[i] !== arr[i % arr.length]) {
return false;
}
}
return true;
}
'공부 > javascript' 카테고리의 다른 글
2022.05.09 - javascript 퀴즈(4) (0) | 2022.05.10 |
---|---|
2022.04.28 - javascript 템플릿 리터럴, 문자열 메서드 (0) | 2022.04.28 |
2022.04.22 - javascript - 퀴즈 (2) (0) | 2022.04.22 |
2022.04.21 - javascript와 ECMAScript의 차이 (0) | 2022.04.22 |
2022.04.18 - javascript 기초 (배열, 구조분해할당, 전개 연산자) (0) | 2022.04.19 |