(구) 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")