프로그래머스 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문을 이용하여 교차하여 곱하는 거였다(/를 한것.)
진짜.... 천재가 많다.... 한수 배우고 갑니다...🙏🙏
오늘부터 맘에 안들게 풀면 목차에 🥔감자이모티콘🥔 넣어야지,,,
그렇게 감자 밭이 된 나의 블로그 미래가 보인다 보여