Programmers Lv.1 - 최소 직사각형[Java]

seren-dev·2022년 6월 25일

Programmers Lv.1

목록 보기
15/15

https://programmers.co.kr/learn/courses/30/lessons/86491

접근

처음에는 문제를 잘못 읽고 그냥 가로 중 최댓값과 세로 중 최댓값을 곱했다. 하지만 잘못 된 풀이법이었고 그 다음으로 생각한 것이 각 명함의 가로 세로 길이에서 최댓값과 최소값 각각을 따로 저장해서 각 List에서 최댓값들을 곱해보았다.

나의 풀이

import java.io.*;
import java.util.*;

class Solution {
    public int solution(int[][] sizes) {
        ArrayList<Integer> max = new ArrayList<>();
        ArrayList<Integer> min = new ArrayList<>();
        
        for (int i = 0; i < sizes.length; i++) {
            max.add(Math.max(sizes[i][0], sizes[i][1]));
            min.add(Math.min(sizes[i][0], sizes[i][1]));
        }
        
        int max1 = Collections.max(max);
        int max2 = Collections.max(min);
        return max1*max2;
    }
}

다른 사람의 풀이

class Solution {
    public int solution(int[][] sizes) {
        int length = 0, height = 0;
        for (int[] card : sizes) {
            length = Math.max(length, Math.max(card[0], card[1]));
            height = Math.max(height, Math.min(card[0], card[1]));
        }
        int answer = length * height;
        return answer;
    }
}
  • foreach문 사용
  • List를 사용하지 않고 풀이

0개의 댓글