목차
문제 설명
2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요.
제한사항
- dots의 길이 = 4
- dots의 원소의 길이 = 2
- -256 < dots[i]의 원소 < 256
- 잘못된 입력은 주어지지 않습니다.
dots | result |
---|---|
[[1, 1], [2, 1], [2, 2], [1, 2]] | 1 |
[[-1, -1], [1, 1], [1, -1], [-1, 1]] | 4 |
class Solution {
public int solution(int[][] dots) {
// x와 y 축 방향의 길이를 저장할 변수 초기화
int x = 0;
int y = 0;
// dots 배열을 순회하며 조건에 따라 x, y 계산
for (int i = 0; i < 4; i++) {
// 첫 번째 점의 x 좌표와 다른 점들의 x 좌표 절댓값이 같으면 y 축 길이를 계산
if (dots[0][0] == dots[i][0]) {
y = Math.abs(dots[0][1] - dots[i][1]);
}
// 첫 번째 점의 y 좌표와 다른 점들의 y 좌표 절댓값이 같으면 x 축 길이를 계산
if (dots[0][1] == dots[i][1]) {
x = Math.abs(dots[0][0] - dots[i][0]);
}
}
return x * y;
}
}
코드 설명
1. 주요 변수
- dots: 2D 배열로, 점의 (x, y) 좌표를 저장.
- x: x축 방향(가로)의 길이.
- y: y축 방향(세로)의 길이.
2. 계산 과정
- 첫 번째 점 선택:
배열에서 첫 번째 점을 기준으로 사용. - 반복문 순회:
배열의 모든 점을 순회하면서 첫 번째 점과 동일한 축에 위치한 점을 찾음. - 조건 비교:
- x좌표가 같을 경우: 두 점의 y좌표 차이의 절댓값을 계산하여 세로 길이를 구함.
- y좌표가 같을 경우: 두 점의 x좌표 차이의 절댓값을 계산하여 가로 길이를 구함.
- 결과 저장:
비교를 통해 얻은 가로(x)와 세로(y) 길이를 변수에 저장.
주요 개념
- 절댓값 사용: 좌표 차이가 음수로 계산될 경우를 방지하여 항상 양의 값을 반환.
- 축 방향 비교: 점들의 x좌표와 y좌표를 각각 비교하여 동일 축에 위치한 점 간의 거리를 구함.
728x90
'JAVA > 프로그래머스 코딩테스트 입문' 카테고리의 다른 글
[프로그래머스 LV.0] 종이 자르기 (0) | 2024.12.12 |
---|---|
[프로그래머스, LV.0] 로그인 성공? (0) | 2024.12.12 |
[프로그래머스, LV.0] 캐릭터의 좌표 (0) | 2024.12.12 |
[프로그래머스, LV.0] 외계어 사전 (0) | 2024.12.12 |
[프로그래머스, LV.0] 구슬을 나누는 경우의 (0) | 2024.12.12 |