[프로그래머스 Lv0.] 직사각형 넓이 구하기(JAVA)

gayoung·2023년 2월 11일
0

알고리즘

목록 보기
38/50

1. 문제

문제 설명

2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요.

제한사항

  • dots의 길이 = 4
  • dots의 원소의 길이 = 2
  • -256 < dots[i]의 원소 < 256
  • 잘못된 입력은 주어지지 않습니다.

입출력 예

dotsresult
[[1, 1], [2, 1], [2, 2], [1, 2]]1
[[-1, -1], [1, 1], [1, -1], [-1, 1]]4

2. 풀이 과정

내가 생각한 진행 과정

  • dots의 처음 x값을 x_min, x_max로 두고 y값을 y_min, y_max로 둔 다음 남은 dots들을 돌면서 x의 최소/최대값, y의 최소/최대값 구하기
  • x의 길이, y의 길이를 계산해 직사각형 넓이 구하기

최종 코드

public int solution(int[][] dots) {
        int answer = 1;
        
        int x_min = dots[0][0];
        int x_max = dots[0][0];
        int y_min = dots[0][1];
        int y_max = dots[0][1];
        
        for (int i=1; i<dots.length; i++){
            x_min = Math.min(x_min, dots[i][0]);
            x_max = Math.max(x_max, dots[i][0]);
            y_min = Math.min(y_min, dots[i][1]);
            y_max = Math.max(y_max, dots[i][1]);
        }
        
        answer = (x_max-x_min) * (y_max-y_min);
            
        return answer;
    }

0개의 댓글

관련 채용 정보