https://school.programmers.co.kr/learn/courses/30/lessons/86491
1) 풀이
레벨 1인데도 헤맸던 문제..!
'질문하기' 에서 팁을 봤는데
'명함을 다 가로로 놓고 본다고 가정해보자..!' 라는 말이 있어서 참고했다
즉, 2차원 배열로 들어가 있는 안의 배열 2개 요소 중 큰 것과 작은 것을 구분해서 각각 특정 인덱스로 분리해놓고
큰 값을 모아놓은 인덱스끼리 주르륵, 작은 값 모아놓은 인덱스끼리 주르륵 비교해서 각각에서의 큰 값을 곱해서 return 해주면 된다! (ex. sizes[i][0]과 sizes[i][1]을 비교해서 sizes[i][0] 에는 작은 값을, sizes[i][1]에는 큰 값을 담아놓고 다시 배열을 순회하면서 [i][0] 들끼리 비교해서 큰 값, [i][1] 들끼리 비교해서 큰 값을 뽑아 두 값을 곱한다!)
2) 최종 소스코드
function solution(sizes) {
sizes=sizes.map((val)=>val[0]<=val[1]?val:[val[1],val[0]]);
let h=sizes[0][0];
let w=sizes[0][1];
for(let i=0;i<sizes.length;i++){
if(h<sizes[i][0]) h=sizes[i][0];
if(w<sizes[i][1]) w=sizes[i][1];
}
return w*h;
}
728x90
'Problem Solving > 프로그래머스' 카테고리의 다른 글
[프로그래머스/JavaScript] 최고의 집합 (0) | 2023.04.06 |
---|---|
[프로그래머스/JavaScript] 소수 찾기 (1) | 2022.12.15 |
[프로그래머스/JavaScript] 베스트앨범 (0) | 2022.12.14 |
[프로그래머스/JavaScript] 타겟 넘버 (1) | 2022.12.14 |
[프로그래머스/JavaScript] 멀리 뛰기 (2) | 2022.11.24 |