본문 바로가기

프로그래머스(Java)/Level 0

[프로그래머스] 평행

728x90

코드 힌트

두 선이 평행하다는 말은 같은 기울기를 가지고 있다는 의미입니다. 즉, 기울기를 구하는 문제입니다.

  1. 기울기 계산:
    • 주어진 두 점 사이의 기울기를 계산하는 함수입니다. 기울기는 두 점의 y좌표 차이를 x좌표 차이로 나누어 계산됩니다.
    • 기울기 계산 시, double 형을 사용하여 정확한 비교를 위해 형 변환을 적용합니다.
  2. 평행 여부 확인:
    • 주어진 4개의 점이 주어졌을 때, 각각의 두 쌍의 선분이 평행한지를 확인합니다. 이때, 세 가지 경우의 선분 쌍을 고려합니다.
    • 두 선분의 기울기가 같으면 해당 선분들은 평행하므로, 이때 1을 반환합니다.
  3. 결과 반환:
    • 모든 경우의 선분 쌍을 비교한 후에도 평행하지 않으면 0을 반환합니다.

 


 


정답은 더보기 클릭

더보기
class Solution {

    // 주어진 네 개의 점이 이루는 두 직선이 평행한지 확인하는 메소드
    public int solution(int[][] dots) {
        // 첫 번째와 두 번째 점, 세 번째와 네 번째 점을 이은 직선의 기울기를 비교
        if (gradient(dots[0], dots[1]) == gradient(dots[2], dots[3])) 
            return 1;
        // 첫 번째와 세 번째 점, 두 번째와 네 번째 점을 이은 직선의 기울기를 비교
        else if (gradient(dots[0], dots[2]) == gradient(dots[1], dots[3])) 
            return 1;
        // 첫 번째와 네 번째 점, 두 번째와 세 번째 점을 이은 직선의 기울기를 비교
        else if (gradient(dots[0], dots[3]) == gradient(dots[1], dots[2])) 
            return 1;
        
        // 어떤 경우에도 평행하지 않은 경우 0 반환
        return 0;
    }
    
    // 두 점 간의 기울기를 계산하는 메소드
    public double gradient(int[] arr1, int[] arr2) {
        // 기울기 = (y2 - y1) / (x2 - x1)
        return (arr2[1] - arr1[1]) * 1.0 / (arr2[0] - arr1[0]);
    }
}
728x90