https://school.programmers.co.kr/learn/courses/30/lessons/86491
문제에 대한 접근 방식이 중요한 문제. 무작정 풀려고하면 시간만 잡아먹고 해결하지 못한다...천천히 생각해보면 매우 간단함 ㅠ
공통의 기준을 잡아줘야한다. 모든 명함은 가로가 세로보다 길어야한다고 정한다. 즉, 세로가 더 긴 명함이 있으면 돌려놓고 가장 큰 가로길이과 세로길이를 찾으면 된다.
class Solution {
public int solution(int[][] sizes) {
for(int i=0; i<sizes.length; i++){
if(sizes[i][0]<sizes[i][1]){//가로보다 세로가 길면
//명함을 회전시킨다.
int tmp= sizes[i][1];
sizes[i][1]=sizes[i][0];
sizes[i][0]=tmp;
}
}
int maxW=0,maxH=0;
//가장 큰 가로길이과 세로길이를 찾음
for(int i=0; i<sizes.length; i++){
if(maxW<sizes[i][0])
maxW=sizes[i][0];
if(maxH<sizes[i][1])
maxH=sizes[i][1];
}
int answer = maxW*maxH;//넓이
return answer;
}
}