백준 4153 - 직각삼각형 [Rust]

[Bronze III] 직각삼각형 - 4153

Posted by Hebi on October 13, 2023

백준 알고리즘

[Bronze III] 직각삼각형 - 4153

문제 링크

성능 요약

메모리: 13152 KB, 시간: 4 ms

분류

기하학(geometry), 수학(math), 피타고라스 정리(pythagoras)

문제 설명

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

입력

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

출력

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

Code

  1. a^2+b^2=c^2 를 활용 면 쉬운문제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use std::io::{BufReader,BufRead,BufWriter,stdin,Write,stdout};
fn main(){
    let mut reader= BufReader::new(stdin().lock());
    let mut writer= BufWriter::new(stdout().lock());
    

     loop{
        let mut input = String::new();
        reader.read_line(&mut input).unwrap();
        let mut triangle  = input.trim().split_whitespace().map(|x|x.parse().unwrap()).collect::<Vec<i32>>();
        if triangle[0]==0 && triangle[0]==0 &&triangle[0]==0 {
            break;
        }
        triangle.sort();
       //a^2+b^2=c^2 를 활용
        if i32::pow(triangle[0], 2) + i32::pow(triangle[1], 2)==i32::pow(triangle[2], 2){
            writeln!(writer,"{}","right").unwrap();
            
        }else{
            writeln!(writer,"{}","wrong").unwrap();

        }
        

     }
     writer.flush().unwrap();
}