문제
https://school.programmers.co.kr/learn/courses/30/lessons/86491
나의 풀이
class Solution {
public int solution(int[][] sizes) {
int answer = 0;
int maxW = 0;
int maxH = 0;
for (int i = 0; i < sizes.length; i++) {
if (sizes[i][0] < sizes[i][1]) {
int tmp = sizes[i][0];
sizes[i][0] = sizes[i][1];
sizes[i][1] = tmp;
}
if (sizes[i][0] > maxW) {
maxW = sizes[i][0];
}
if (sizes[i][1] > maxH) {
maxH = sizes[i][1];
}
}
answer = maxW * maxH;
return answer;
}
}
완전탐색 카테고리에서 나온 문제이다. 처음에는 한 시간동안 중첩 반복문과 if문을 엄청 써서 삽질을 했다. 도저히 답이 안나오자 실제 명함이라 생각해보니... 와. 명함 중에 긴 부분을 0인덱스에, 짧은 부분을 1인덱스에 두도록 해서 각각 최댓값을 구하면 됐었다.
반복문은 한번만 순회하면 돼서 O(n)이고 선형 차수이다.
'알고리즘 & 문제 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 부족한 금액 계산하기(java) (0) | 2023.02.08 |
---|---|
[프로그래머스] 없는 숫자 더하기(java) (0) | 2023.02.08 |
[프로그래머스] 나머지가 1이 되는 수 찾기(java) (0) | 2023.02.07 |
[프로그래머스] 숫자 짝꿍(java) (0) | 2023.02.06 |
[프로그래머스] 삼총사(java) (0) | 2023.02.06 |