본문 바로가기
Problem Solving/BOJ

[백준] 4153번 - 직삼각형

by 테리는당근을좋아해 2020. 1. 10.

문제 >

과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.

 

입력 >

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

 

출력 >

각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다.

 

해결방법 > 

피타고라스의 정리를 이용해서 가장 큰 변의 길이의 제곱이 나머지 두 변의 길이의 제곱의 합과 같은지 판별한다.

c^2 = a^2 + b^2

 

c++

#include <iostream>
#include <vector>
#include <math.h>
#include <algorithm>

using namespace std;

int main(){
    vector <pair<int,pair<int, int> > > v;
    int a[3];

    while(1){
        cin >> a[0] >> a[1] >> a[2];
        if(a[0] == 0 && a[1] == 0 && a[2] == 0)
            break;
        sort(a, a + 3);
        v.push_back(pair<int, pair<int, int> >(a[2], make_pair(a[1],a[0])));
    }

    for(int i = 0; i < v.size(); i++){
        if(pow(v[i].first, 2) == pow(v[i].second.second, 2) + pow(v[i].second.first, 2))
            cout << "right\n";
        else
            cout << "wrong\n";
    }
}

 

java

package baekjoon;

import java.util.*;

public class BOJ_4153 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		while(true) {
			int[] a = new int[3];
			int big;
			
			for(int i = 0; i < 3; i++)
				a[i] = sc.nextInt();
			
			if(a[1] == 0 && a[1] == 0 && a[2] == 0)
				break;
			
			for(int i = 1; i < a.length; i++) {
				for(int j = i; j < a.length; j++) {
					if(a[j-1] > a[j]) {
						int tmp = a[j-1];
						a[j-1] = a[j];
						a[j] = tmp;
					}
				}
			}
			
			if(Math.pow(a[2], 2) == Math.pow(a[1], 2) + Math.pow(a[0], 2))
				System.out.println("right");
			else
				System.out.println("wrong");
			
		}
	}
}

 

문제링크 >

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

 

4153번: 직각삼각형

문제 과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오. 입력 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. 출력 각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다. 예제 입력 1 복사 6 8

www.acmicpc.net

 

댓글