공유 소스 보기
www.acmicpc.net
문제
과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.
입력
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.
출력
각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다.
내가 작성한 코드
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
//3, 4, 5 -> 직각 삼각형
//직각 삼각형이면 right
// 아니면 wrong
while(true){
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
if(a == 0 && b == 0 && c == 0){
break;
}
if(c * c == a * a + b * b){
System.out.println("right");
}else{
if(b * b == a * a + c * c){
System.out.println("right");
}else{
if(a * a == b * b + c * c){
System.out.println("right");
}else{
System.out.println("wrong");
}
}
}
}
}
}
비교
import java.util.Scanner;
//피타고라스의 정리 이용
public class Main{
static boolean result(int v1, int v2, int v3){
//주어진 세 변의 길이로 3가지 경우를 모두 확인
if(v1 * v1 + v2 * v2 == v3 * v3){
return true;
}else if(v1 * v1 + v3 * v3 == v2 * v2){
return true;
}else if(v2 * v2 + v3 * v3 == v1 * v1){
return true;
}
//여기까지 왔으면 해당 사항이 없음을 의미
//직사각형이 아니므로
return false;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(true){
int v1 = sc.nextInt();
int v2 = sc.nextInt();
int v3 = sc.nextInt();
if(v1 + v2 + v3 == 0){
break;
}
System.out.println(result(v1, v2, v3) ? "right" : "wrong");
}
}
}
'Coding Test > 백준' 카테고리의 다른 글
백준 15552. 빠른 A+B (0) | 2021.07.27 |
---|---|
백준 2920. 음계 (0) | 2021.03.11 |
백준 4344. 평균은 넘겠지 (0) | 2021.03.11 |
백준 4673. 셀프 넘버 (0) | 2021.03.11 |
백준 5543. 상근날드 (0) | 2021.03.11 |