평행

김세호·2022년 12월 7일
0

내 풀이(점이 4개일 때만 가능)

import java.util.ArrayList;
import java.util.Arrays;
class Solution {
    public int solution(int[][] dots) {
        int answer = 0;
            double[] grad = new double[6];//점 4개로 순서에 상관 없이 기울기를 만들 수 있는 경우의수 4C2 = 6개 , 기울기는 0보다 작은 수도 가능해서 double로 설정
            //점 4개로 만들 수 있는 모든 기울기의 경우의 수
            //(점 5개,6개 ... n개 일 때도 가능하게 확장 해 볼것... 쉽지 않음)
            grad[0] = (dots[0][1]-dots[1][1])/(double)(dots[0][0]-dots[1][0]);
            grad[1] = (dots[0][1]-dots[2][1])/(double)(dots[0][0]-dots[2][0]);
            grad[2] = (dots[0][1]-dots[3][1])/(double)(dots[0][0]-dots[3][0]);
            grad[3] = (dots[1][1]-dots[2][1])/(double)(dots[1][0]-dots[2][0]);
            grad[4] = (dots[1][1]-dots[3][1])/(double)(dots[1][0]-dots[3][0]); 
            grad[5] = (dots[2][1]-dots[3][1])/(double)(dots[2][0]-dots[3][0]);   
            Arrays.sort(grad);//grad에 같은 수가 존재한다면 인접한 두 수가 같은지만 비교해보면 되기 때문에 오름차순 정렬
            for(int i = 0 ; i <grad.length-1;i++){
                if(grad[i]==grad[i+1]){
                    answer =1;
                }
            }
        return answer;
    }
}

0개의 댓글