물먹는산세베리아

[BOJ] 4153번: 직사각형 C++ 본문

Algorithm/백준

[BOJ] 4153번: 직사각형 C++

suntall 2021. 2. 28. 02:14

문제

과거 이집트인들은 각 변들의 길이가 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() 쓰는 것도 해봐야겠음

 

 

www.acmicpc.net/problem/4153

 

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