본문 바로가기
자기개발/TIL

프로그래머스 js 최대값 만들기(2)

by 금화맘 2023. 6. 26.

프록그래머스 최댓값 만들기(2)를 푸는데 의문점이 들었던 부분을 기록했다.

 

나는 먼저 배열의 숫자를 큰 순서대로 나열 한 다음 맨 앞의 숫자와 그 다음 숫자를 곱하면 최댓값을 만들 수 있을 거라 생각했다.

그래서 

numbers.sort((a,b)=>a-b)).reduce((a,b)=>(a*b),1)

작성했더니 배열안의 모든 숫자를 곱한 값이 나왔다.

 

numbers.sort((a,b)=>a-b)

 var answer = numbers[numbers.length - 1] * numbers[numbers.length - 2];

이렇게 푸니까 음수 * 음수 일때의 값은 해당이 안되는 걸 알았다.

 

그래서 다른 사람의 풀이를 봤다.

numbers.sort((a, b) => a - b);

return Math.max(numbers[0]*numbers[1], numbers[numbers.length-1]*numbers[numbers.length-2]);

 

오오~~ Math.max() ! 이거 사용한 사람 천재인 줄 알았다.

그래도 (numbers[0]*numbers[1]와 numbers[numbers.length-1]*numbers[numbers.length-2])의 차이를 잘 모르겠어서 인공지능에게 물어봤다.

numbers[0]*numbers[1]는 제일 작은 수를 곱했을때

numbers[numbers.length-1]*numbers[numbers.length-2]) 이건 제일 큰 수를 곱했을 때의 값이었다.

그래서 이걸 Math.max()가 작은 수를 곱한 값과 큰 수를 곱한 값을 비교해서 제일 큰 max값을 반환하는 거였다.

굿굿~

 

 

 

'자기개발 > TIL' 카테고리의 다른 글

자바로 구현한 좋아요 많은 순서대로 반환 회고하기  (0) 2023.06.28
영어 면접을 봤습니다.  (0) 2023.06.27
프로그래머스 lv.0 암호해독.js  (0) 2023.06.24
reduce 익히기  (0) 2023.06.24
수학 어렵네..  (0) 2023.06.22