[Study] 프로그래머스 lv. 1 최소 직사각형 ( 71% )

ayboori·2023년 7월 14일
0

Java Study

목록 보기
15/34

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

풀이 로직

  1. 최대 가로 길이, 최대 세로 길이 값을 저장할 변수 선언
  2. 배열의 길이만큼 루프를 돌며 setMax 수행
  3. 이때 가로길이를 긴 값으로 세팅하기 위해 값을 반대로 넣어서 함수 호출
  4. setMax에서 max가로, 세로 값 설정
  5. 두 수의 값을 리턴

내가 작성한 코드

class Solution {
        int maxWidth = -1, maxHeight = -1; // 크기가 될 수 없는 값으로 세팅해두기
    
     public int solution(int[][] sizes) {

        for (int i = 0; i < sizes.length; i++) {
            if (sizes[i][0] > sizes[i][1]) { // 가로가 세로보다 크면
                setMax(sizes[i][1], sizes[i][0]); // 큰 수를 가로로 세팅
            }else{
                setMax(sizes[i][0], sizes[i][1]); // 아닐 경우 그대로 세팅
            }
        }

        return maxWidth * maxHeight; // 크기 리턴
    }

    // 둘 중 더 큰 숫자로 max 값 세팅
    public void setMax(int width, int height) {           
        if (maxWidth < width) {
            maxWidth = width;
        }
        if (maxHeight < height) {
            maxHeight = height;
        }
    }
}

통과 시간

테스트 1 〉	통과 (0.02ms, 73.6MB)
테스트 2 〉	통과 (0.02ms, 70.2MB)
테스트 3 〉	통과 (0.02ms, 79.1MB)
테스트 4 〉	통과 (0.02ms, 76.9MB)
테스트 5 〉	통과 (0.03ms, 69MB)
테스트 6 〉	통과 (0.02ms, 74.5MB)
테스트 7 〉	통과 (0.03ms, 70.4MB)
테스트 8 〉	통과 (0.04ms, 76.8MB)
테스트 9 〉	통과 (0.02ms, 74.1MB)
테스트 10 〉	통과 (0.04ms, 80.9MB)
테스트 11 〉	통과 (0.04ms, 77.8MB)
테스트 12 〉	통과 (0.05ms, 78.9MB)
테스트 13 〉	통과 (0.14ms, 77.3MB)
테스트 14 〉	통과 (0.30ms, 78.6MB)
테스트 15 〉	통과 (0.31ms, 76.2MB)
테스트 16 〉	통과 (0.82ms, 84.9MB)
테스트 17 〉	통과 (1.04ms, 83.9MB)
테스트 18 〉	통과 (1.07ms, 83.7MB)
테스트 19 〉	통과 (1.14ms, 88.5MB)
테스트 20 〉	통과 (1.03ms, 86.3MB)

다른 사람의 풀이


class Solution {
    public int solution(int[][] sizes) {
        int length = 0, height = 0;
        for (int[] card : sizes) {
        // 카드의 0번째, 1번째 인덱스 중 큰 값(을 길이로 뒀을 때 길이) 들의 최대값
            length = Math.max(length, Math.max(card[0], card[1]));
        // 카드의 0번째, 1번째 인덱스 중 작은 값(을 길이로 뒀을 때 길이) 들의 최대값
            height = Math.max(height, Math.min(card[0], card[1]));
        }
        int answer = length * height;
        return answer;
    }
}
profile
프로 개발자가 되기 위해 뚜벅뚜벅.. 뚜벅초

0개의 댓글