https://school.programmers.co.kr/learn/courses/30/lessons/120876?language=python3
시도 1
dots에 대한 조합을 구하고 나올수 있는 기울기를 구한다음에 기울기가 중복이 된 경우 평행이라고 가정하였으나, 67/100으로 탈락
모든 조합을 구한 경우 AB직선과 BC직선은 비교할 필요가 없는데 비교하게 되어 탈락한 것 같다.
1
2
3
4
5
6
7
8
9
10
11
12
|
def solution(dots):
from itertools import combinations
slopes = []
for i in combinations(dots, 2):
if i[1][0] - i[0][0] != 0:
slope = (i[1][0] - i[0][0]) / (i[1][1] - i[0][1])
if slope in slopes:
return 1
else:
slopes.append(slope)
return 0
|
시도 2
각 원소에대한 기울기를 직접 구해서 진행하여 solved
1
2
3
4
5
6
7
8
9
10
|
def gradient(a, b):
return (a[1] - b[1]) / (a[0] - b[0])
def solution(dots):
p1, p2, p3, p4 = dots[:4]
if gradient(p3, p1) == gradient(p4, p2) or gradient(p4, p3) == gradient(p2, p1):
return 1
else:
return 0
|
다른사람풀이#
1
2
3
4
5
6
|
def solution(dots):
[[x1, y1], [x2, y2], [x3, y3], [x4, y4]]=dots
answer1 = ((y1-y2)*(x3-x4) == (y3-y4)*(x1-x2))
answer2 = ((y1-y3)*(x2-x4) == (y2-y4)*(x1-x3))
answer3 = ((y1-y4)*(x2-x3) == (y2-y3)*(x1-x4))
return 1 if answer1 or answer2 or answer3 else 0
|