주니어 기초 코딩공부/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