commit 6a16fd27eea20601e4b3af88193456d347fcb40a Author: sm4640 Date: Thu Jan 15 10:00:14 2026 +0900 5073-b3 성공 diff --git a/workbook_8708/5073-b3.py b/workbook_8708/5073-b3.py new file mode 100644 index 0000000..c710401 --- /dev/null +++ b/workbook_8708/5073-b3.py @@ -0,0 +1,44 @@ +# 삼각형과 세 변 + +import sys + +input = sys.stdin.readline + +CHECK = {0: "Invalid", 1: "Scalene", 2: "Isosceles", 3: "Equilateral"} + +def check_triangle(a, b, c): + if a == b and b == c: + return 3 + + lst = sorted([a, b, c], reverse=True) + + if lst[0] >= lst[1] + lst[2]: + return 0 + + if a != b and b != c and c != a: + return 1 + else: + return 2 + +def solution(): + while 1: + a, b, c = map(int, input().rstrip().split()) + if a+b+c == 0: + break + + result = check_triangle(a, b, c) + print(CHECK.get(result, 0)) + return + +solution() + +""" +걸린 시간: 30분? (함수 나누고, 더 빠른 거 생각해보려다 늦어짐) + +해설: 셋 다 무조건 양수로 들어오는데 0, 0, 0이면 끝나므로 더했을 때 0이면 끝내도록 메인함수를 설계했다. +check 함수에서는 0,1,2,3 중에 값을 직접 확인하는 함수인데, 셋 다 같은 경우가 가장 쉽기 때문에 1번으로 체크하였고, +그 다음은 삼각형의 조건인 '제일 큰 변이 나머지 두 변의 합보다 작아야 된다'를 체크하기 위해 정렬하고, 미리 걸러서 invliad를 확인하였다. +이때, 1,2번 길이가 같던, 2,3번 길이가 같던 어떤 상황이든 상관없이 정렬하고, 1 >= 2+3 하면 된다. +마지막으로 1: "Scalene", 2: "Isosceles"를 거를 때는 두 개가 같은 것이 있냐를 알아보는 것보다 셋 다 다른 것을 알아보는게 더 빠르기 때문에 +if else로 처리했다. (2는 a=b and b=!c 와 a!=b!=c) +""" \ No newline at end of file