Notice
Recent Posts
Recent Comments
Link
개발자는 기록이 답이다
[프로그래머스][Java][Lv.1] 최소 직사각형 본문
https://school.programmers.co.kr/learn/courses/30/lessons/86491
사고력의 문제이다.
문제에서 설명하는 것처럼 최대값을 찾아서 분기처리로 가로 세로 바꿔주려고 했으면 엄청 오래 걸릴 것 같다
가로, 세로의 최대값, 최소값을 구하고 그 최대값과 최소값의 최대값을 구하면 빠르게 풀린다.
public class Solution {
public int solution(int[][] sizes) {
int hMax = Integer.MIN_VALUE; // 수평
int vMax = Integer.MIN_VALUE; // 수직
for (int i = 0; i < sizes.length; i++) {
int h = Math.min(sizes[i][0], sizes[i][1]);
int v = Math.max(sizes[i][0], sizes[i][1]);
hMax=Math.max(hMax,h);
vMax=Math.max(vMax,v);
}
return vMax*hMax;
}
public static void main(String[] args) {
Solution T = new Solution();
int[][] sizes1 = {{60, 50},
{30, 70},
{60, 30},
{80, 40}};
System.out.println(T.solution(sizes1));
}
}
테스트 1 〉 | 통과 (0.04ms, 74.3MB) |
테스트 2 〉 | 통과 (0.03ms, 73.2MB) |
테스트 3 〉 | 통과 (0.06ms, 71.7MB) |
테스트 4 〉 | 통과 (0.03ms, 77MB) |
테스트 5 〉 | 통과 (0.04ms, 73.7MB) |
테스트 6 〉 | 통과 (0.03ms, 74MB) |
테스트 7 〉 | 통과 (0.03ms, 75.5MB) |
테스트 8 〉 | 통과 (0.05ms, 72.6MB) |
테스트 9 〉 | 통과 (0.03ms, 73.8MB) |
테스트 10 〉 | 통과 (0.06ms, 72.9MB) |
테스트 11 〉 | 통과 (0.10ms, 76.8MB) |
테스트 12 〉 | 통과 (0.06ms, 75.8MB) |
테스트 13 〉 | 통과 (0.24ms, 87MB) |
테스트 14 〉 | 통과 (0.28ms, 80.2MB) |
테스트 15 〉 | 통과 (0.63ms, 83.1MB) |
테스트 16 〉 | 통과 (0.71ms, 82.9MB) |
테스트 17 〉 | 통과 (1.52ms, 83.2MB) |
테스트 18 〉 | 통과 (1.81ms, 85MB) |
테스트 19 〉 | 통과 (1.78ms, 85.7MB) |
테스트 20 〉 | 통과 (1.83ms, 89MB) |
참고링크 :
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][Java][Lv.2] 최솟값 만들기 (0) | 2023.10.18 |
---|---|
[프로그래머스][Java][Lv.1] 모의고사 (0) | 2023.10.04 |
[프로그래머스][Java][Lv.1] k번째 수 (0) | 2023.10.04 |
[프로그래머스][Java][Lv.2] 기능개발 (1) | 2023.10.03 |
[프로그래머스][Java][Lv.2] 올바른 괄호 (0) | 2023.10.03 |