문제

풀이
#기울기 비교 함수 정의
def parallel(a, b, c, d) :
#점 a와 점 b의 기울기
g1 = (a[1] - b[1]) / (a[0] - b[0])
#점 c와 점 d의 기울기
g2 = (c[1] - d[1]) / (c[0] - d[0])
if g1 == g2 :
return 1
else : return 0
def solution(dots):
#dots 내 점들의 순서를 바꿔가며 비교
res1 = parallel(dots[0], dots[1], dots[2], dots[3])
res2 = parallel(dots[0], dots[2], dots[1], dots[3])
res3 = parallel(dots[0], dots[3], dots[1], dots[2])
if 1 in ([res1, res2, res3]) :
return 1
else : return 0
- dots의 원소의 개수가 많았다면 반복문을 통한 함수를 생각해보았겠지만, 생각해보니 기울기를 총 3번만 비교하면 된다고 생각하여 따로 반복문을 통하진 않았다.
- 먼저 평행이 되려면 기울기가 같아야 하므로 parallel()함수를 정의해 들어오는 점 4개의 앞 두개의 점의 기울기와, 뒤 두개의 점 사이의 비교하는 함수를 구현했다. 두 기울기가 같으면 1을 반환, 다르면 0을 반환하는 함수이다.
- 이후 solution에는 위에서 구현한 함수를 점의 순서를 바꿔가며 결과를 총 3개 저장했고, 3개의 값 중 1이 하나라도 있으면 1을 반환, 없으면 0을 반환하는 코드를 완성했다.
*github
'Algorithm' 카테고리의 다른 글
| [프로그래머스] 옹알이(1) (1) | 2026.03.10 |
|---|---|
| [프로그래머스] 겹치는 선분의 길이 (0) | 2026.03.10 |
| [LeetCode] 2327. Number of People Aware of a Secret (0) | 2026.03.03 |
| [LeetCode] 92 - Reverse Linked List 2 (1) | 2026.03.03 |
| [LeetCode] 649 - Dota2 Senate (0) | 2026.03.03 |
