[프로그래머스] 평행

김준영·2023년 3월 11일
1

코딩테스트

목록 보기
9/22

문제


점 네 개의 좌표를 담은 이차원 배열 dots가 다음과 같이 매개변수로 주어집니다.

[[x1, y1], [x2, y2], [x3, y3], [x4, y4]]
주어진 네 개의 점을 두 개씩 이었을 때, 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 return 하도록 solution 함수를 완성해보세요.

https://school.programmers.co.kr/learn/courses/30/lessons/120875

내 풀이


class Solution {
    public int solution(int[][] dots) {
        int answer = 0;
        for(int i = 0; i < dots.length; i++){
            float a1 = inc(dots[i], dots[(i+1)%4]);
            float a2 = inc(dots[(i+2)%4], dots[(i+3)%4]);
            if(a1 == a2) answer = 1;
        }
        return answer;
    }
    public float inc(int[] a1, int[] a2){
        float a = a1[0] - a2[0];
        float b = a1[1] - a2[1];

        return b/a;
    }
}
  1. 기울기가 같으면 평행이다.
  2. 두 개씩 뽑는걸로 진행, %4를 통해 4번 이상이면 다시 처음으로 돌아가게 한다.
  3. 기울기가 같으면 리턴.
profile
ㅎㅎ

0개의 댓글

Powered by GraphCDN, the GraphQL CDN