반응형
https://www.acmicpc.net/problem/1925
예제1
입력
0 0
-3 -3
-3 0
출력
Jikkak2Triangle
예제2
입력
1 1
0 0
2 100
출력
DunkakTriangle
예제3
입력
10000 10000
2580 2580
-10000 -10000
출력
X
반응형
a1, a2 = map(int, input().split())
b1, b2 = map(int, input().split())
c1, c2 = map(int, input().split())
#x y
#x y
#x y
l1 = (a1 - b1) ** 2 + (a2 - b2) ** 2
l2 = (c1 - b1) ** 2 + (c2 - b2) ** 2
l3 = (a1 - c1) ** 2 + (a2 - c2) ** 2
l123 = list((l1, l2, l3))
l123.sort()
x1, x2, x3 = a1, b1, c1
y1, y2, y3 = a2, b2, c2
s = (x1 * y2 + x2 * y3 + x3 * y1) - (x1 * y3 + x3 * y2 + x2 * y1)
if a1 == b1 == c1 or a2 == b2 == c2 or s == 0:
print("X")
elif (a1 - b1) ** 2 + (a2 - b2) ** 2 == (c1 - b1) ** 2 + (c2 - b2) ** 2 == (a1 - c1) ** 2 + (a2 - c2) ** 2:
print("JungTriangle")
elif l1 == l2 or l2 == l3 or l3 == l1:
if l123[2] == l123[0] + l123[1]:
print("Jikkak2Triangle")
elif l123[2] > l123[1] + l123[0]:
print("Dunkak2Triangle")
else:
print("Yeahkak2Triangle")
else:
if l123[2] == l123[0] + l123[1]:
print("JikkakTriangle")
elif l123[2] > l123[1] + l123[0]:
print("DunkakTriangle")
else:
print("YeahkakTriangle")
3개의 좌표가 일직선인지 구분만 하면 나머지는 분기만 나누면 되는 문제여서 어렵지는 않다.
신발끈 공식이라고 불리는 위의 공식으로 삼각형의 넓이가 0이라면 3개의 좌표가 일직선이라고 판단하는 코드를 작성했다.
반응형
'Programming > 알고리즘' 카테고리의 다른 글
[백준 / Python] 10816번 숫자카드 2 (0) | 2023.02.13 |
---|---|
[백준 / Python] 27277번 장기자랑 (1) | 2023.02.05 |
[백준 / Python] 5615번 아파트 임대 (0) | 2023.01.22 |
[백준 / Python] 1780번 종이의 개수 (0) | 2023.01.15 |
[백준 / Python] 16953번 A → B (3) | 2023.01.11 |
댓글