

점 네 개의 좌표를 담은 이차원 배열 dots가 다음과 같이 매개변수로 주어집니다.
[[x1, y1], [x2, y2], [x3, y3], [x4, y4]]
주어진 네 개의 점을 두 개씩 이었을 때, 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 return 하도록 solution 함수를 완성해보세요.입출력 예
dots result [[1, 4], [9, 2], [3, 8], [11, 6]] 1 [[3, 5], [4, 1], [2, 4], [5, 10]] 0
- 4개의 점을 이용하여 만들 수 있는 모든 두 직선의 조합을 찾기.
- 이 경우, 가능한 조합은 총 3가지:
- (0,1), (2,3) / (0,2), (1,3) / (0,3), (1,2)
- 각 조합에 대해 두 직선의 기울기를 계산.
- 계산된 두 기울기가 같은지를 확인.
- 모든 조합을 확인한 후에도 평행한 두 직선이 없다면 0을 반환.
function solution(dots) {
const slope = (dot1, dot2) => (dot2[1] - dot1[1]) / (dot2[0] - dot1[0]);
const pairs = [[0, 1, 2, 3], [0, 2, 1, 3], [0, 3, 1, 2]];
for (let i = 0; i < pairs.length; i++) {
const slope1 = slope(dots[pairs[i][0]], dots[pairs[i][1]]);
const slope2 = slope(dots[pairs[i][2]], dots[pairs[i][3]]);
if (slope1 === slope2) {
return 1;
}
}
return 0;
}
왜 저 배열인지?
주어진 4개의 점을 두 개씩 묶어 두 직선을 만드는 방법은 총 3가지고, 숫자는 각 점의 인덱스를 나타낸다.
- 예를 들면, [0, 1, 2, 3]은 첫 번째와 두 번째 점으로 첫 번째 직선을 만들고, 세 번째와 네 번째 점으로 두 번째 직선을 만든다는 것을 의미한다.