Programmers

Programmers 문제 풀이 40

백단비 2023. 8. 25. 14:13

문제 설명 : 직사각형의 넓이 구하기

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
}

 

 

 

https://www.programmers.co.kr 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

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