(구) solved ac class 문제들/class 2
[class 2]백준 직각삼각형(4153번) 풀이 (C++/Python)
isekaipudding
2026. 4. 30. 13:59
문제 : 직각삼각형(4153번)(Bronze III)
문제 링크 : https://www.acmicpc.net/problem/4153
출처 : Baekjoon Online Judge
while문으로 입력 받아서 세 개의 변을 입력 받아 직각삼각형 여부를 판정하고 세 개의 변 모두 0으로 나오면 while문을 탈출하는 문제입니다.
직각삼각형인지 판별할려면 저번에 나온 피타고라스 정리 공식을 활용하면 되겠죠?

$$a^2 + b^2 = c^2$$
해당 공식이 나온 게시글에 나온 소스 코드를 그대로 활용하면 됩니다.
[C++]
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
while(true) {
int a, b, c;
cin >> a >> b >> c;
if(a == 0 && b == 0 && c == 0) break;
int z = a;
z = (b > z) ? b : z;
z = (c > z) ? c : z;
int x = a;
x = (b < x) ? b : x;
x = (c < x) ? c : x;
int y = (a + b + c) - z - x;
if(x * x + y * y == z * z) cout << "right" << '\n';
else cout << "wrong" << '\n';
}
return 0;
}
[Python]
import sys
input = sys.stdin.readline
while True :
a, b, c = map(int, input().split())
if a == b == c == 0 :
break
x, y, z = 0, 0, 0
x = min([a, b, c])
z = max([a, b, c])
y = sum([a, b, c]) - x - z
if x ** 2 + y ** 2 == z ** 2 :
print("right")
else :
print("wrong")