문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/86491
1. 나의 코드
function solution(sizes) {
var arr1 = [];
var arr2 = [];
for(let card of sizes) {
if(card[0] < card[1]) {
card = [card[1], card[0]]
}
arr1.push(card[0]);
arr2.push(card[1]);
}
const arr1Max = Math.max(...arr1);
const arr2Max = Math.max(...arr2);
console.log("arr1Max: " + arr1Max);
console.log("arr2Max: " + arr2Max);
return arr1Max * arr2Max;
}
- arr1 배열과 arr2 배열을 생성한다.
- sizes 배열을 순회한다.
- 가로 길이가 세로 길이보다 작다면 둘을 뒤바꾼다.
- arr1에 가로 길이를, arr2에 세로 길이를 push한다.
- arr1 배열에서 최댓값을 arr1Max에, arr2 배열에서 최댓값을 arr2Max에 할당한다.
- arr1Max와 arr2Max를 곱한 값을 return한다.
명함은 회전할 수 있기 때문에, 가로를 두 변 중에서 더 긴 부분, 세로를 두 변 중에서 더 짧은 부분으로 기준을 설정해서 비교했다.
2. 다른 사람의 풀이
function solution(sizes) {
const rotated = sizes.map(([w, h]) => w < h ? [h, w] : [w, h]);
let maxSize = [0, 0];
rotated.forEach(([w, h]) => {
if (w > maxSize[0]) maxSize[0] = w;
if (h > maxSize[1]) maxSize[1] = h;
})
return maxSize[0]*maxSize[1];
}
나의 풀이와 푸는 법은 똑같지만, map, 삼항연산자, forEach를 활용한다는 점이 차이점이다.
'Programmers(JavaScript)' 카테고리의 다른 글
[프로그래머스 자바스크립트] ‘입국심사’ 풀어보기 (0) | 2024.12.31 |
---|---|
[프로그래머스 자바스크립트] ‘K번째수’ 풀어보기 (0) | 2024.08.07 |
[프로그래머스 자바스크립트] ‘구명보트’ 풀어보기 (0) | 2024.08.07 |
[프로그래머스 자바스크립트] ‘체육복’ 풀어보기 (0) | 2024.08.07 |
[프로그래머스 자바스크립트] ‘기능개발’ 풀어보기 (0) | 2024.07.17 |