문제
내가 작성한 정답
class Solution {
public int solution(int[][] dots) {
int maxX = -256;
int minX = 256;
int maxY = -256;
int minY = 256;
for(int i = 0; i < 4; i++){
maxX = Math.max(dots[i][0],maxX);
minX = Math.min(dots[i][0],minX);
}
for(int i= 0; i < 4; i++){
maxY = Math.max(dots[i][1],maxY);
minY = Math.min(dots[i][1],minY);
}
return (maxX-minX)*(maxY-minY);
}
}
다른 사람들의 정답
class Solution {
public int solution(int[][] dots) {
int answer = 0;
int tmp = dots[0][0]; // 첫 번째 점의 x좌표를 tmp에 저장
int tmp2 = 0; // 세로 길이
int tmp3 = 0; // 가로 길이
for(int i = 1; i < dots.length; i++) {
if(dots[i][0] == tmp) {
// 현재 점의 x좌표가 첫 번째 점의 x좌표와 같으면
// 세로 길이를 계산
tmp2 = Math.abs(dots[i][1] - dots[0][1]);
} else {
// x좌표가 다르면 가로 길이를 계산
tmp3 = Math.abs(dots[i][0] - dots[0][0]);
}
}
answer = tmp2 * tmp3; // 넓이 계산
return answer;
}
}
Share article