728x90
문제설명
2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해 보세요.
제한사항
- dots의 길이 = 4
- dots의 원소의 길이 = 2
- -256 < dots [i]의 원소 < 256
- 잘못된 입력은 주어지지 않습니다.
입출력 예 & 설명
- 입출력 예 #1
- 좌표 [[1, 1], [2, 1], [2, 2], [1, 2]] 를 꼭짓점으로 갖는 직사각형의 가로, 세로 길이는 각각 1, 1이므로 직사각형의 넓이는 1 x 1 = 1입니다.
- 입출력 예 #2
- 좌표 [[-1, -1], [1, 1], [1, -1], [-1, 1]]를 꼭짓점으로 갖는 직사각형의 가로, 세로 길이는 각각 2, 2이므로 직사각형의 넓이는 2 x 2 = 4입니다.
나의 풀이
풀이에 대한 설명에 앞서 제가 접근한 방식을 설명하자면 다음과 같습니다.
4개의 좌표는 어디일지 모르기 때문에 직사각형의 특징에 접근하면 이해하기가 쉽습니다.
왼쪽과 같이 임의로 4개의 좌표를 지정했습니다.
직사각형의 특징대로 아래의 x축과 위의 x축은 길이가 같고, 마찬가지로 y축도 왼쪽과 오른쪽의 길이가 같기 때문에 4개의 좌표 중에서 2개의 좌표만 사용하면 됩니다.
풀이를 설명하자면 먼저 구조 분해 할당(...)을 사용해서 dots를 초기화시켜 줍니다.
위에서 말했듯이 2개의 좌표 x, y만 구해줍니다.
y축의 max가 만약 y1이고, y축의 min이 y3이라면 max - min을 하면 x축이 구해지게 됩니다.
똑같이 x축의 max가 만약 x1이고, x축의 min이 x3이라면 max - min을 하면 y축이 구해지게 됩니다.
마지막으로 x축과 y축 곱해 직사각형의 넓이를 반환하여 마무리했습니다.
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 다항식 더하기 (JavaScript) (0) | 2024.03.07 |
---|---|
[프로그래머스] 저주의 숫자 3 (JavaScript) (1) | 2024.02.28 |
[프로그래머스] 캐릭터의 자표 (JavaScript) (1) | 2024.02.25 |
[프로그래머스] 정수를 나선형으로 배치하기 (JavaScript) (1) | 2024.02.24 |
[프로그래머스] 주사위 게임 3 (JavaScript) (0) | 2024.02.24 |