BEAKJOON

백준(4153번 직각삼각형)풀이 C++

Shin_jisoo 2021. 1. 14. 20:27
728x90

www.acmicpc.net/problem/4153

 

4153번: 직각삼각형

입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.

www.acmicpc.net

1) 주석 없는 VERSION

#include <iostream>
#include <stdio.h>
#include <cmath>

using namespace std;

int main() {
	int a, b, c;
	
	while (1) {
		cin >> a >> b >> c;
		if (a == 0 && b == 0 && c == 0) {
			break;
		}

		int heru = 0;
		if (a >= b) {
			heru = a;
			if (a >= c) {
				heru = a;
			}
			else {
				heru = c;
			}
		}

		else {
			heru = b;
			if (b >= c) {
				heru = b;
			}
			else {
				heru = c;
			}
		}

		int tmp = 0;
		if (heru == a) {
			tmp = sqrt(pow(b, 2) + pow(c, 2));
			if (heru == tmp) {
				cout << "right" << "\n";
			}
			else {
				cout << "wrong" << "\n";
			}
		}

		if (heru == b) {
			tmp = sqrt(pow(a, 2) + pow(c, 2));
			if (heru == tmp) {
				cout << "right" << "\n";
			}
			else {
				cout << "wrong" << "\n";
			}
		}

		if (heru == c) {
			tmp = sqrt(pow(b, 2) + pow(a, 2));
			if (heru == tmp) {
				cout << "right" << "\n";
			}
			else {
				cout << "wrong" << "\n";
			}
		}

	}
}

 

2) 주석 있는 VERSION

#include <iostream>
#include <stdio.h>
#include <cmath>

using namespace std;

int main() {
	int a, b, c;
	
	while (1) {
		cin >> a >> b >> c;
		if (a == 0 && b == 0 && c == 0) {
			break;
		}

		// a,b,c 중 제일 큰 값 찾기
		int heru = 0;
		if (a >= b) {
			heru = a;
			if (a >= c) {
				heru = a;
			}
			else {
				heru = c;
			}
		}

		else {
			heru = b;
			if (b >= c) {
				heru = b;
			}
			else {
				heru = c;
			}
		}

		// 피타고라스를 이용하여 빗변 = 루트(한변의 제곱 + 다른 한변의 제곱)이므로
		// 성립하는지 확인
		int tmp = 0;
		if (heru == a) {
			tmp = sqrt(pow(b, 2) + pow(c, 2));
			if (heru == tmp) {
				cout << "right" << "\n";
			}
			else {
				cout << "wrong" << "\n";
			}
		}

		if (heru == b) {
			tmp = sqrt(pow(a, 2) + pow(c, 2));
			if (heru == tmp) {
				cout << "right" << "\n";
			}
			else {
				cout << "wrong" << "\n";
			}
		}

		if (heru == c) {
			tmp = sqrt(pow(b, 2) + pow(a, 2));
			if (heru == tmp) {
				cout << "right" << "\n";
			}
			else {
				cout << "wrong" << "\n";
			}
		}

	}
}