주니어 기초 코딩공부/JAVA_programmers_코딩테스트

직사각형 넓이 구하기_programmers_lev00

jju_developer 2022. 12. 29. 19:48
728x90

<코딩 테스트>

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

 

<나의 풀이 과정>

(x,y) 는 x중에서 가장 큰 값 - x중에서 가장 작은 값 을빼고

y도 y중에서 가장 큰 값 - y중에서 가장 작은 값을 뺀 후 x * y 를 곱해준 값을

return합니다.  

 

<나의 풀이 코드>

class Solution {
    public int solution(int[][] dots) {
		int x = dots[0][0], y = dots[0][1], width = 0, height = 0;
		for (int i = 1; i < dots.length; i++) {
			if (x != dots[i][0])
				width = Math.abs(x - dots[i][0]);
			if (y != dots[i][1])
				height = Math.abs(y - dots[i][1]);
		}
		return width * height;
    }
}

<다른 사람 풀이>

class Solution {
    public int solution(int[][] dots) {
        int answer = 0;
        int tmp = dots[0][0];
        int tmp2 = 0;
        int tmp3 = 0;
        for(int i = 1; i<dots.length; i++){
            if(dots[i][0] == tmp){
                tmp2 = Math.abs(dots[i][1] - dots[0][1]);
            }else{
                tmp3 = Math.abs(dots[i][0] - dots[0][0]);
            }
        }
        answer = tmp2 * tmp3;
        return answer;
    }
}

<다른 사람 풀이>

import java.util.*;

class Solution {
    public int solution(int[][] dots) {
        int answer = 0;

        int[] dot = dots[0];

        for(int i =0; i<dots.length; i++){
            int x = dots[i][0];
            int y = dots[i][1];

            if(dot[0]!=x && dot[1]!=y){
                answer = Math.abs(x-dot[0]) * Math.abs(y-dot[1]);
                break;
            }
        }

        return answer;
    }
}

 

 

 

 

 

 

 

 

 

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/120913

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

728x90