백준

[백준] 10101 : 삼각형 외우기 (Python/파이썬)

sson-coding 2025. 10. 20. 14:54

문제 링크

https://www.acmicpc.net/problem/10101

문제

창영이는 삼각형의 종류를 잘 구분하지 못한다. 따라서 프로그램을 이용해 이를 외우려고 한다.

삼각형의 세 각을 입력받은 다음,

세 각의 크기가 모두 60이면, Equilateral
세 각의 합이 180이고, 두 각이 같은 경우에는 Isosceles
세 각의 합이 180이고, 같은 각이 없는 경우에는 Scalene
세 각의 합이 180이 아닌 경우에는 Error

를 출력하는 프로그램을 작성하시오.

입력

총 3개의 줄에 걸쳐 삼각형의 각의 크기가 주어진다. 모든 정수는 0보다 크고, 180보다 작다.

출력

문제의 설명에 따라 Equilateral, Isosceles, Scalene, Error 중 하나를 출력한다.

예제

입력

60
70
50

출력

Scalene

정답 및 풀이

triangle=[]
for i in range(3):
    triangle.append(int(input()))

if sum(triangle)==180:
    if triangle[0]==triangle[1]==triangle[2]:
        print("Equilateral")
    elif triangle[0]==triangle[1] or triangle[0]==triangle[2] or triangle[1]==triangle[2]:
        print("Isosceles")
    else:
        print("Scalene")
else:
    print("Error")
  1. triangle=[]
    • 세 각의 값을 저장할 빈 리스트 triangle을 생성합니다.
  2. for i in range(3):
    • 3개의 각을 입력받기 위해 반복문을 3번 실행합니다.
  3. triangle.append(int(input()))
    • 각 반복마다 사용자로부터 정수를 입력받아 리스트 triangle에 추가합니다.
  4. if sum(triangle)==180:
    • 입력받은 세 각의 합이 180도인지 확인합니다.
    • 삼각형의 내각 합은 항상 180도이므로, 이를 만족하지 않으면 삼각형이 될 수 없습니다.
  5. if triangle[0]==triangle[1]==triangle[2]:
    • 세 각이 모두 같은 경우 정삼각형(Equilateral) 이므로 "Equilateral"을 출력합니다.
  6. elif triangle[0]==triangle[1] or triangle[0]==triangle[2] or triangle[1]==triangle[2]:
    • 세 각 중 두 각이 같다면 이등변삼각형(Isosceles) 이므로 "Isosceles"을 출력합니다.
  7. else:
    • 세 각이 모두 다르다면 부등변삼각형(Scalene) 이므로 "Scalene"을 출력합니다.
  8. else:
    • 세 각의 합이 180이 아닌 경우 삼각형이 될 수 없으므로, "Error"를 출력합니다

다른 풀이

a, b, c = [int(input()) for _ in range(3)]

if a + b + c != 180:
    print("Error")
elif a == b == c:
    print("Equilateral")
elif a == b or b == c or a == c:
    print("Isosceles")
else:
    print("Scalene")