본문 바로가기

코딩테스트

[프로그래머스] level1. 최소직사각형 (javascript)

반응형

문제

 

코딩테스트 연습 - 최소직사각형

[[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133

programmers.co.kr

나의풀이

function solution(sizes) {
    let arr = [0,0]
    for(let i = 0 ; i < sizes.length;i++){
        let [b,s] = sizes[i].sort((a,b)=>b-a)
        if(b>arr[0]){
            arr[0] =b
        }
        if(s>arr[1]){
            arr[1] =s
        }
    }
    return arr[0]*arr[1]
}

결과값이 결국 두 변(가로,세로)을 곱하는 것이므로 가로,세로에 얽매일 필요가 없었다.
sort로 한쪽은 큰수,작은수로 정렬해주면 큰 수는 큰 수 끼리, 작은수는 작은수 끼리만 비교해도 답이 나왔다.

다른이 정답보고 수정

조금 더 보기 깔끔해 보이도록 수정해보았습니다.

function solution(sizes) {
    let arr = [0,0]
    sizes.forEach(el=>{
        let [b,s] = el.sort((a,b)=>b-a)
        if(b>arr[0]) arr[0] =b
        if(s>arr[1]) arr[1] =s
    })
    return arr[0]*arr[1]
}
반응형