[프로그래머스] 최소 직사각형

한규한·2022년 9월 5일
0

문제

https://school.programmers.co.kr/learn/courses/30/lessons/86491?language=java

한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다.
각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요.

풀이

문제 조건에서 가로 세로 회전이 가능하다고 했다. 가로로 짧고 세로로 긴 종이들이 여러개 있는 상태에서 세로길이 끼리, 가로 길이 끼리 비교를 하면 답을 도출 할 수 있다.

코드

class Solution {
    public int solution(int[][] sizes) {
        int long_max = 1; //긴 길이 
        int short_max = 1; //짧은 길이 
        
        for(int i = 0; i < sizes.length; i++){
            int l = Math.max(sizes[i][0], sizes[i][1]);
            int s = Math.min(sizes[i][0], sizes[i][1]);
            
            if(l > long_max) {
                long_max = l;
            }
            if(s > short_max) {
                short_max = s;
            }
        }
        return long_max * short_max;
    }
}

0개의 댓글