코드업 문제집 파이썬 if~else 1218 : 삼각형 판단하기
[문제]
삼각형의 3변의 길이 a, b, c가 입력으로 주어진다.
여기서 입력되는 변의 관계는 a ≤ b ≤ c 이다.
그 삼각형이 무슨 삼각형인지 출력하시오.
[문제 해설(핵심)]
가장 먼저 삼각형을 만들 수 있는지 확인한다.
가장 긴 변이 c일 때
a + b > c
이면 삼각형을 만들 수 있다.
반대로
a + b <= c
이면 삼각형아님을 출력한다.
삼각형이 맞다면 조건에 따라 종류를 구분한다.
a = b = c → 정삼각형
두 변의 길이가 같음 → 이등변삼각형
a² + b² = c² → 직각삼각형
나머지 → 삼각형
[문제 풀이 1 - if / elif 사용]
삼각형이 만들어지지 않는 경우를 가장 먼저 확인한다.
↓
세 변이 모두 같은지 확인한다.
↓
두 변이 같은지 확인한다.
↓
피타고라스 정리를 이용해 직각삼각형인지 확인한다.
↓
나머지는 일반 삼각형이다.
[사용된 개념 설명]
and : 두 조건이 모두 참인지 확인
a == b and b == c
or : 두 조건 중 하나라도 참인지 확인
a == b or b == c
a * a : a²를 의미
a * a + b * b == c * c
피타고라스 정리인
a² + b² = c²
를 코드로 표현한 것이다.
[코드]
a, b, c = map(int, input().split())
if a + b <= c:
print("삼각형아님")
elif a == b and b == c:
print("정삼각형")
elif a == b or b == c:
print("이등변삼각형")
elif a * a + b * b == c * c:
print("직각삼각형")
else:
print("삼각형")
[문제 풀이 2 - 중첩 if문 사용]
이번에는 처음부터
if a + b > c:
를 이용해 삼각형인 경우와 아닌 경우를 먼저 나눌 수도 있다.
삼각형이라면 그 안에서 다시 종류를 판단한다.
[핵심]
삼각형을 만들 수 있음
↓
어떤 삼각형인지 판단
삼각형을 만들 수 없음
↓
삼각형아님
[코드]
a, b, c = map(int, input().split())
if a + b > c:
if a == b and b == c:
print("정삼각형")
elif a == b or b == c:
print("이등변삼각형")
elif a * a + b * b == c * c:
print("직각삼각형")
else:
print("삼각형")
else:
print("삼각형아님")
[두 풀이 비교]
풀이 1은 조건을 if - elif - else로 차례대로 확인해서 코드가 짧고 보기 쉽다.
풀이 2는 먼저 삼각형인지 아닌지 크게 나눈 다음 종류를 판단해서 조건의 의미를 이해하기 쉽다.
이 문제에서는 풀이 1이 더 간단하고 추천하는 방법이다.
'코딩공부 > 코드업 파이썬' 카테고리의 다른 글
| 코드업 문제집 파이썬 if~else 1228 : 비만도 측정 1 (0) | 2026.09.07 |
|---|---|
| 코드업 문제집 파이썬 if~else 1226 : 이번 주 로또 (1) | 2026.09.07 |
| 코드업 문제집 파이썬 if~else 1214 : 이 달은 며칠까지 있을까? (3) | 2026.09.06 |
| 코드업 문제집 파이썬 if~else 1212 : 삼각형의 성립 조건 (0) | 2026.09.06 |
| 코드업 문제집 파이썬 if~else 1205 : 최댓값 (0) | 2026.09.06 |
댓글