numbers 배열 안에 있는 숫자 두개를 곱해 최대값을 뽑아내는 문제였다
처음에 문제를 딱 보자마자 쉽네 ㅋ 하고 후다다 코드를 작성
function solution(numbers) {
var answer = numbers.sort((a,b)=>b-a);
return answer[0] * answer[1];
}
numbers 배열을 내림차순으로 정리후 배열 첫번째와 두번째있는 수를 곱하면 되는거 아닌가? 했는데..
문제를 잘못봤다 .. ! 음수의 값도 있었던 것. 이후 다시 정직하게 코드를 짜기 시작했다
내 답
function solution(numbers) {
var answer = numbers.sort((a,b) =>b-a);
let front = answer[0]*answer[1];
let back = answer[numbers.length- 1] *answer[numbers.length - 2]
return front > back ? front : back;
}
너무나 정직한 코드에 올리기도 민망하지만 ㅋㅋㅋㅋㅋㅋ... 맨 앞 두개의 곱과 맨 뒤 두 수의 곱을 비교해서 ... 더 큰쪽으로 리턴하는 삼항연산자로 표시했다. 그냥 훌러덩 내고나서 아 좀 다른 함수를 써볼껄! 이란 생각과 후회가 뒤늦게 밀려오긴 했지만.. 다른 분들의 코드를 보며 더 공부를 해야겠다
다른 답
function solution(numbers) {
numbers.sort((a, b) => a - b);
return Math.max(numbers[0]*numbers[1], numbers[numbers.length-1]*numbers[numbers.length-2]);
}
Math.max()
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
///
var arr = [1,2,3];
var max = arr.reduce(function(a, b) {
return Math.max(a, b);
}, -Infinity);
Math.max() - JavaScript | MDN
Math.max() 함수는 입력값으로 받은 0개 이상의 숫자 중 가장 큰 숫자를 반환합니다.
developer.mozilla.org
'기초다지기 > JS 코딩테스트' 카테고리의 다른 글
string 특정 문자 대문자로 변경하기 (0) | 2023.05.11 |
---|---|
[Lv0] 해당 문자열을 수로 변경하기 (2) | 2023.05.10 |
javascript 을 이용해 삼각형 그리기 repeat() 사용 (0) | 2023.04.18 |
javascript 입력된 문자열에서 숫자 추출하기 (0) | 2023.04.18 |
Lv.0 상자안에 들어갈 주사위 개수 map()사용 (0) | 2023.04.17 |