[프로그래머스 / C++] 평행

YH·2023년 8월 9일
0

문제

평행 : 문제 링크


문제 분석

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

    [[x1,y1], [x2,y2], [x3,y3], [x4,y4]]

  • 주어진 네 개의 점을 두 개씩 이었을 때, 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 return
  • 두 선분이 평행일 조건은, 기울기 m = (y2 - y1) / (x2 - x1)이 같을 경우이므로, 네 개의 점을 두 개씩 이을 경우 두 직선의 기울기가 같은 경우에 1을 return 하도록 함
  • 가독성을 위해 dots[0] 부터 [3]까지를 d1 부터 d4에 저장 후, if문과 ||(or)문을 통해 처리

풀이

#include <vector>

using namespace std;

int solution(vector<vector<int>> dots) {
    vector<int> d1 = dots[0];
    vector<int> d2 = dots[1];
    vector<int> d3 = dots[2];
    vector<int> d4 = dots[3];
    
    if(double(double(d1[1]-d2[1])/double(d1[0]-d2[0]))
      ==double(double(d3[1]-d4[1])/double(d3[0]-d4[0]))
    ||double(double(d1[1]-d3[1])/double(d1[0]-d3[0]))
      ==double(double(d2[1]-d4[1])/double(d2[0]-d4[0]))
    ||double(double(d1[1]-d4[1])/double(d1[0]-d4[0]))
      ==double(double(d2[1]-d3[1])/double(d2[0]-d3[0]))) return 1;
    
    return 0;
}
profile
Keep Recycling Your Dreams

0개의 댓글