평행

Polla·2023년 1월 4일
0

programmers

목록 보기
13/58
post-thumbnail

프로그래머스 lv0 평행 문제 파이썬




💡 문제


 점 네 개의 좌표를 담은 이차원 배열 dots가 다음과 같이 매개변수로 주어집니다.
 
 - [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]
 
 주어진 네 개의 점을 두개씩 이었을때, 두 직선이 평행이 되는 경우가 있으면 1을,
 없으면 0을 return 하도록 solution 함수를 완성해보세요.



🥳 해결


우선 직선이 평행하는 경우기울기가 같은경우 다.

처음에는 combinations 를 쓰려 했으나, 중복을 제거할 방법이
생각나질 않아서 포기했다ㅠ😪
def solution(dots):

   case1 = (dots[0][0]-dots[1][0])/(dots[0][1]-dots[1][1])
   case2 = (dots[2][0]-dots[3][0])/(dots[2][1]-dots[3][1])
   
   case3 = (dots[0][0]-dots[2][0])/(dots[0][1]-dots[2][1])
   case4 = (dots[1][0]-dots[3][0])/(dots[1][1]-dots[3][1])
   
   case5 = (dots[0][0]-dots[3][0])/(dots[0][1]-dots[3][1])
   case6 = (dots[1][0]-dots[2][0])/(dots[1][1]-dots[2][1])
   
   if case1 == case2 or case3 == case4 or case5 == case6:
       return 1
   return 0

나는 선을 잇는 케이스 6개를 생성해서, 같을시 1을 리턴 하게 만들었다.

후에 알고보니 for문으로 ((x1, y1), (x2, y2))의 값을 받고, 
그 값은 기울기 공식을 이용해서 먼저 x와 y를 빼준다음, 
(위에 쓴 부분에서 /앞에 있는 부분을 각각 따로 한 상태)
에서 그 값을 또 combinations로 2개로 묶어,
for문을 이용하여 교차하여 곱하는 거였다(/를 한것.)

진짜.... 천재가 많다.... 한수 배우고 갑니다...🙏🙏

오늘부터 맘에 안들게 풀면 목차에 🥔감자이모티콘🥔 넣어야지,,,

그렇게 감자 밭이 된 나의 블로그 미래가 보인다 보여

profile
트러블 슈팅 Blog => https://polla.palms.blog/home

0개의 댓글