문제
과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.
입력
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.
출력
각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다.
입력, 출력 예제
풀이
x^2 + y^2 = z^ 공식을 활용했다.
<cmath>에서 pow함수를 사용하고 입력받은 변수에 다시 저장 후 x, y, z 각각 가장 큰 수 일 때 저 공식을 만족하면 "right"를 출력하도록 한다.
코드
#include <iostream>
using namespace std;
#include <cmath>
int main() {
int a, b, c;
int max;
while(1){
cin >> a >> b >> c;
if (a == 0 && b == 0 && c == 0)break;
a = pow(a, 2);
b = pow(b, 2);
c = pow(c, 2);
if (a + b == c || b + c == a || c + a == b)cout << "right"<<endl;
else cout << "wrong"<<endl;
}
}
마무리
간단하긴 한데 저렇게 풀면 좋은 점수는 못 받지 않을까..
오름차순 정렬하고 그 상태에서 공식 쓰고 싶었는데(sort) 간단한 문제라 일단 저렇게 짬
매번 저렇게 변수 선언하는 거 말고 백터 많이 써야징 입력받을 때 vector push_back() 쓰는 것도 해봐야겠음
4153번: 직각삼각형
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.
www.acmicpc.net
'Algorithm > 백준' 카테고리의 다른 글
[BOJ] 1085번: 직사각형에서 탈출 (0) | 2021.02.23 |
---|---|
[BOJ]1193번: 분수찾기 (0) | 2021.02.15 |
[BOJ] 2775번: 부녀회장이 될테야 (0) | 2021.02.14 |