| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- CSS
- 비전공자
- JavaScript
- react
- useMemo
- Github
- 프론트엔드
- 알고리즘
- useRef
- TypeScript
- 입문
- 코딩테스트
- 모던 딥 다이브 자바스크립트
- MegabyteSchool
- GIT
- 메가바이트스쿨
- 개발 공부
- 내일배움카드
- 개발자취업부트캠프
- styled-components
- 모던 자바스크립트 딥 다이브
- 패스트캠퍼스
- 국비지원교육
- 자바스크립트
- 이벤트
- 프로그래머스
- 공식문서
- next.js
- 리액트
- 자료구조
Archives
- Today
- Total
개발 기록 남기기✍️
[프로그래머스] 직사각형 넓이 구하기 본문
🗒️ 문제 설명
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 |
❇️ 나의 풀이
- 처음에는 엥 이런걸 왜 문제 내줘? 겁나 쉬운데? 했다. 좌표가 순서대로 주어진줄 알고 (dots[0][0] - dots[1][0]) * dots[0][1] - dots[3][1]) 했다가 바로 오답... ^,^
- 일단 sort 함수로 배열을 정렬했다. dots.sort((a,b) => a[0]-b[0]) 는 1차원 배열의 인덱스가 0인 부분을 비교해서 정렬한다. 따라서 x축 값이 작은 것들이 먼저 앞쪽에 오게 된다.
- dots[0]과 dots[1]을 비교하면 y 값을 얻을 수 있고, dots[0]과 dots[2]를 비교하면 x 값을 얻을 수 있다.
- 비교한 값이 음수로 나올 수도 있으므로 Math.abs()로 감싸준다.
function solution(dots) {
dots.sort((a,b) => a[0]-b[0]);
return Math.abs((dots[0][1] - dots[1][1]) * (dots[0][0] - dots[2][0]))
}'코딩 테스트 연습' 카테고리의 다른 글
| [프로그래머스] 컨트롤 제트 (0) | 2022.12.30 |
|---|---|
| [프로그래머스] 최빈값 구하기 (0) | 2022.12.30 |
| [프로그래머스] 삼각형의 완성조건 (2) (0) | 2022.12.30 |
| [프로그래머스] 가까운 수 (0) | 2022.12.29 |
| [프로그래머스] 직각삼각형 출력하기 (0) | 2022.12.28 |