Algorithm/Java

프로그래머스 - 최소직사각형 java :: 위클리 챌린지 :: 86491

고고마코드 2022. 6. 22. 09:35
반응형

문제 링크

코딩테스트 연습 - 최소직사각형 | 프로그래머스 (programmers.co.kr)


문제 풀이

지문을 잘 보면 명함을 눕힐 수 있다는 부분이 있는데, 명함을 눕힐 수 있다는 것은 가로/세로의 구분이 없다는 말입니다.

코드

public int solution(int[][] sizes) {
    int maxX = Integer.MIN_VALUE, maxY = Integer.MIN_VALUE;
    for(int[] size : sizes) {
        maxX = Math.max(maxX, Math.max(size[0], size[1]));
        maxY = Math.max(maxY, Math.min(size[0], size[1]));
    }

    return maxX * maxY;
}

가로/세로 구분이 없으니 명함의 큰 값을 가로, 작은 값을 세로라고 생각하고 계산하면 편합니다.

지문의 예시로 살펴보자면
| 명함 번호 | 가로 / 세로 | max / min | 지갑 크기 |
| --- | --- | --- | --- |
| 1 | 60 / 50 | 60 / 50 | 3000 |
| 2 | 30 / 70 | 70 / 30 | 2100 |
| 3 | 60 / 30 | 60 / 30 | 1800 |
| 4 | 80 / 40 | 80 / 40 | 3200 |
| 제일 큰 값들만 가져오자 | - | 80 / 50 | 4000 |

  • 가로/세로 구분이 없다는 부분만 잘 체크했으면 쉽게 풀 수 있는 문제였습니다.

테스트 케이스 실행속도

🔥 0.02 ~ 1.39ms

반응형