자바 백준 8723번
브론즈 4
https://www.acmicpc.net/problem/8723
문제 보기
Problem
Bajtuś found 3 sticks in the forest. Now he wants to know if he can build a right triangle or an equilateral triangle with them. Bajtuś cannot break the sticks, he can only use them in their entirety.
Input
The first line of input contains three integers ( a, b, c ) (1 ≤ ( a, b, c ) ≤ 1000), representing the lengths of the first, second, and third sticks, respectively.
Output
The first and only line of output should contain a single number:
0 - if Bajtuś cannot build either a right triangle or an equilateral triangle,
1 - if Bajtuś can build only a right triangle,
2 - if Bajtuś can build only an equilateral triangle.
분류: 수학, 기하학, 사칙연산, 피타고라스 정리
코드 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// 입력된 문자열을 공백으로 나누어 각 막대기의 길이로 변환
String[] input = br.readLine().split(" ");
int a = Integer.parseInt(input[0]); // 첫 번째 막대기의 길이
int b = Integer.parseInt(input[1]); // 두 번째 막대기의 길이
int c = Integer.parseInt(input[2]); // 세 번째 막대기의 길이
// 막대기로 만들 수 있는 삼각형의 유형을 판단하여 결과 출력
System.out.println(determineTriangleType(a, b, c));
}
// 주어진 막대기의 길이에 따라 삼각형의 유형을 판단하는 메서드
private static int determineTriangleType(int a, int b, int c) {
// 정삼각형 조건: 세 막대기의 길이가 모두 같은 경우
boolean isEquilateral = (a == b) && (b == c);
// 직각삼각형 조건: 피타고라스의 정리를 이용하여 직각삼각형인지 판단
boolean isRight = (a * a + b * b == c * c) || // a와 b가 직각을 이루는 경우
(a * a + c * c == b * b) || // a와 c가 직각을 이루는 경우
(b * b + c * c == a * a); // b와 c가 직각을 이루는 경우
// 결과에 따라 반환
if (isEquilateral) {
return 2; // 정삼각형만 가능
} else if (isRight) {
return 1; // 직각삼각형만 가능
} else {
return 0; // 두 삼각형 모두 불가능
}
}
}
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 17608 - 막대기 (2) | 2024.12.08 |
---|---|
[Java] 백준 풀기 4458 - 첫 글자를 대문자로 (0) | 2024.11.26 |
[Java] 백준 풀기 5554 - 심부름 가는 길 (2) | 2024.11.24 |
[Java] 백준 풀기 5724 - 파인만 (0) | 2024.10.12 |
[Java] 백준 풀기 11282 - 한글 (0) | 2024.10.09 |