문제 설명 : 직사각형의 넓이 구하기
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 |
문제 풀이
x, y 배열을 만든 후 for문을 돌면의 dots원소의 x는 x에 y는 y에 넣어줬다.
그 후에 x와 y에서 제일큰 값과 제일 작은 값의 차이를 구해 곱해서 직사각형의 넓이를 구했다.
function solution(dots) {
let x = []
let y = []
for(let i = 0; i < dots.length; i++) {
x.push(dots[i][0])
y.push(dots[i][1])
}
return (Math.max(...x) - Math.min(...x)) * (Math.max(...y) - Math.min(...y))
}
문제 설명 : 평행
점 네 개의 좌표를 담은 이차원 배열 dots가 다음과 같이 매개변수로 주어집니다.
- [[x1,y1], [x2, y2], [x3, y3], [x4, y4]]
주어진 네 개의 점을 두 개씩이었을 때, 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 return 하도록 하는 solution함수???
제한 사항
- dots의 길이 = 4
- dots의 원소는 [x, y] 형태이며 x,y는 정수입니다
- 0 ≤ x,y ≤ 100
- 서로 다른 두 개 이상의 점이 겹치는 경우는 없습니다.
- 두 직선이 겹치는 경우(일치하는 경우)에도 1을 return 해주세요.
- 임의의 두 점을 이은 직선이 x축 또는 y축과 평행한 경우는 주어지지 않습니다.
입출력 예
dots | result |
[[1,4], [9,2], [3,8], [11,6]] | 1 |
[[3,5], [4,1], [2,4], [5,10]] | 0 |
문제 풀이
기울기가 같으면 평행이니까 두 점이 이어지는 경우의 수 모두 기울기를 구해서 비교해 줬다.
function solution(dots) {
if((dots[0][1] - dots[1][1]) / (dots[0][0] - dots[1][0]) === (dots[2][1] - dots[3][1]) / (dots[2][0] - dots[3][0])) return 1
if((dots[0][1] - dots[2][1]) / (dots[0][0] - dots[2][0]) === (dots[1][1] - dots[3][1]) / (dots[1][0] - dots[3][0])) return 1
if((dots[0][1] - dots[3][1]) / (dots[0][0] - dots[3][0]) === (dots[2][1] - dots[1][1]) / (dots[2][0] - dots[1][0])) return 1
return 0
}
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
www.programmers.co.kr
320x100
'Programmers' 카테고리의 다른 글
Programmers 문제 풀이 41 (0) | 2023.08.30 |
---|---|
Programmers 문제 풀이 39 (0) | 2023.08.24 |
Programmers 문제 풀이 38 (0) | 2023.08.22 |
Programmers 문제 풀이 37 (0) | 2023.08.21 |
Programmers 문제 풀이 36 (0) | 2023.08.08 |