본문 바로가기
JavaScript/메소드

[javascript] 가장 큰수 2개 찾기, sort(), Math.max(), splice(), indexOf()

by Angry Stock 2023. 9. 12.
반응형
sort() 메서드는 배열의 요소를 적절한 위치에 정렬한 후 그 배열을 반환합니다. 정렬은 stable sort 가 아닐 수 있습니다. 기본 정렬 순서는 문자열의 유니코드 코드 포인트를 따릅니다.
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort();
console.log(months);
// Expected output: Array ["Dec", "Feb", "Jan", "March"]

const array1 = [1, 30, 4, 21, 100000];
array1.sort();
console.log(array1);
// Expected output: Array [1, 100000, 21, 30, 4]
Math.max() 함수는 입력값으로 받은 0개 이상의 숫자 중 가장 큰 숫자를 반환합니다.
console.log(Math.max(1, 3, 2));
// Expected output: 3

console.log(Math.max(-1, -3, -2));
// Expected output: -1

const array1 = [1, 3, 2];

console.log(Math.max(...array1));
// Expected output: 3
splice() 메서드는 배열의 기존 요소를 삭제 또는 교체하거나 새 요소를 추가하여 배열의 내용을 변경합니다.
const months = ['Jan', 'March', 'April', 'June'];
months.splice(1, 0, 'Feb');
// Inserts at index 1
console.log(months);
// Expected output: Array ["Jan", "Feb", "March", "April", "June"]

months.splice(4, 1, 'May');
// Replaces 1 element at index 4
console.log(months);
// Expected output: Array ["Jan", "Feb", "March", "April", "May"]
indexOf() 메서드는 배열에서 지정된 요소를 찾을 수 있는 첫 번째 인덱스를 반환하고 존재하지 않으면 -1을 반환합니다.
const beasts = ['ant', 'bison', 'camel', 'duck', 'bison'];

console.log(beasts.indexOf('bison'));
// Expected output: 1

// Start from index 2
console.log(beasts.indexOf('bison', 2));
// Expected output: 4

console.log(beasts.indexOf('giraffe'));
// Expected output: -1
연습
function solution1(num) {
  num.sort((a, b) => {
    return b - a;
  });
  return num[0] * num[1];
}

function solution2(num) {
  let max1 = Math.max(...num);
  num.splice(num.indexOf(max1), 1);
  let max2 = Math.max(...num);
  return max1 * max2;
}

let num1 = [
  [1, 8, 13, 14, 34, 41],
  [5, 12, 19, 23, 40, 42],
];

let num2 = [
  [1, 8, 13, 14, 34, 41],
  [5, 12, 19, 23, 40, 42],
];

for (let i = 0; i < num1.length; i++) {
  console.log('solution1', solution1(num1[i]));
}
for (let i = 0; i < num1.length; i++) {
  console.log('solution2', solution2(num2[i]));
}
결과

반응형

댓글