또 다른 문제 풀이
책에서 제시하는 풀이가 유일한 정답은 아닙니다. 다른 사람이 푼 내용을 살펴보면 생각보다 다양한 풀이가 있다는 사실을 알 수 있습니다. 이번에는 똑같은 문제를 다른 방식으로 풀어보겠습니다. 문제 풀이를 위한 과정 자체는 이전과 동일하게 진행합니다.
1. 주어진 직선에서 교점을 알아냅니다.
for i in range(len(line)):
a, b, e = line[i]
for j in range(i + 1, len(line)):
c, d, f = line[j]
if ((a * d) - (b * c)) == 0:
continue
x = ((b * f) - (e * d)) / ((a * d) - (b * c))
y = ((e * c) - (a * f)) / ((a * d) - (b * c))
방정식을 처음부터 모두 비교하는 논리는 동일합니다. 차이점이 있다면 계산 실수를 방지하기 위해 괄호를 사용했다는 점을 들 수 있습니다. 계산식의 경우 정확한 순서를 밟지 않으면 정답이 나오지 않으므로 약간 번거롭더라도 잘못 계산될 가능성을 줄이는 방식으로 진행하겠습니다.