[백준 BOJ] 4153번 직각삼각형 (C++/cpp)

2022. 2. 1. 13:58PS (Program Solving)/BOJ (백준)

문제 설명

https://www.acmicpc.net/problem/4153

 

4153번: 직각삼각형

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

www.acmicpc.net

 

백준 BOJ 4153번 직각삼각형 문제 사진

 

접근 방법 - 피타고라스의 정의를 이용한 수학 문제

백준의 4153번 문제는 피타고라스의 정의를 사용해서 해결해야 하는 문제이다.

해당 문제는 입력받은 삼각형의 길이를 통해, 해당 삼각형이 직각삼각형인지에 대한 여부를 밝혀야 하는 문제이다.

필자는 해당 문제에 필수적으로 필요한 피타고라스의 정의를 직접적으로 대입하여 문제를 해결하였다.

필자는 아래의 순서대로 코드를 작성하여 문제를 해결하였다.

 

코드의 실행 순서

1) 3개의 변 길이(a, b, c)를 입력받는다.

 

2) 조건문에 피타고라스의 정의를 그대로 입력하고, 이를 만족할 시 "right"를 출력하고 아닐 시 "wrong"을 출력한다.

(어느 변이 가장 큰지에 대한 정보가 명시되어있지 않기 때문에 3가지의 경우를 모두 고려한다.)

 

3) 1) ~ 2) 과정을 반복하고, 0 0 0을 입력받을 시 실행 종료한다.

반응형

 

성공한 코드

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)
#include <iostream>
using namespace std;

//백준 4153번 코드
int main() {
	int a, b, c;
	while (1) {
		cin >> a >> b >> c;
		if (a == 0 && b == 0 && c == 0) { break; }
		
		if ((c * c == a * a + b * b) || (b * b == a * a + c * c) || (a * a == c * c + b * b)) {
			cout << "right" << endl;
		}
		else {
			cout << "wrong" << endl;
		}
	}
}

 

제출 결과

백준 BOJ 4153번 직각삼각형 문제 C++ 제출 결과

(2022.01.05 백준 4153번 문제 제출 결과)

반응형