[백준 4153] 직각삼각형 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
입력으로 주어지는 세 변의 길이를 바탕으로 삼각형이 직각 삼각형
인지 아닌지를 판별하는 문제입니다.
피타고라스의 정리
를 사용하여 직각삼각형을 판별할 수 있습니다.
세 변의 길이를 a
, b
, c
(c
가 가장 긴 변) 라고 가정했을 때,
c2 = a2 + b2 가 성립하면 직각삼각형입니다.
따라서, 세 변의 길이를 입력으로 받아 정렬한 뒤, 가장 긴 변을 바탕으로 피타고라스의 정리가 성립하는지 확인하면 됩니다.
Code
[ C# ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
namespace Solution {
class Program {
static void Main(string[] args) {
while (true) {
var sides = Console.ReadLine()!.Split().Select(int.Parse).ToList();
if (sides[0] == 0 && sides[1] == 0 && sides[2] == 0) break ;
sides.Sort();
if (sides[2] * sides[2] == sides[0] * sides[0] + sides[1] * sides[1])
Console.WriteLine("right");
else Console.WriteLine("wrong");
}
}
}
}
[ C++ ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
vector<int> sides(3);
while (true) {
cin >> sides[0] >> sides[1] >> sides[2];
if (sides[0] == 0 && sides[1] == 0 && sides[2] == 0)
break;
sort(sides.begin(), sides.end());
if (sides[2] * sides[2] == sides[0] * sides[0] + sides[1] * sides[1])
cout << "right\n";
else cout << "wrong\n";
}
return 0;
}