문제 링크
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")
- triangle=[]
- 세 각의 값을 저장할 빈 리스트 triangle을 생성합니다.
- for i in range(3):
- 3개의 각을 입력받기 위해 반복문을 3번 실행합니다.
- triangle.append(int(input()))
- 각 반복마다 사용자로부터 정수를 입력받아 리스트 triangle에 추가합니다.
- if sum(triangle)==180:
- 입력받은 세 각의 합이 180도인지 확인합니다.
- 삼각형의 내각 합은 항상 180도이므로, 이를 만족하지 않으면 삼각형이 될 수 없습니다.
- if triangle[0]==triangle[1]==triangle[2]:
- 세 각이 모두 같은 경우 정삼각형(Equilateral) 이므로 "Equilateral"을 출력합니다.
- elif triangle[0]==triangle[1] or triangle[0]==triangle[2] or triangle[1]==triangle[2]:
- 세 각 중 두 각이 같다면 이등변삼각형(Isosceles) 이므로 "Isosceles"을 출력합니다.
- else:
- 세 각이 모두 다르다면 부등변삼각형(Scalene) 이므로 "Scalene"을 출력합니다.
- 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")
'백준' 카테고리의 다른 글
| [백준] 14215 : 세 막대 (Python/파이썬) (0) | 2025.10.20 |
|---|---|
| [백준] 5073 : 삼각형과 세 변 (Python/파이썬) (0) | 2025.10.20 |
| [백준] 9063 : 대지 (Python/파이썬) (0) | 2025.10.16 |
| [백준] 15894 : 수학은 체육과목 입니다 (Python/파이썬) (0) | 2025.10.16 |
| [백준] 3009 : 네 번째 점 (Python/파이썬) (0) | 2025.10.16 |