자바 백준 6322번
브론즈 3
https://www.acmicpc.net/problem/6322
문제 보기
분류: 수학, 기하학, 사칙연산, 피타고라스 정리
코드 풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int caseNumber = 1;
while (true) {
// 사용자 입력 받기 (세 변의 길이)
double a = sc.nextDouble();
double b = sc.nextDouble();
double c = sc.nextDouble();
// 종료 조건 확인
if (isEndCondition(a, b, c)) {
break;
}
// 케이스 번호 출력
System.out.printf("Triangle #%d\n", caseNumber);
// 입력된 값으로 삼각형 계산 처리
processCase(a, b, c);
caseNumber++;
}
}
// 프로그램 종료 조건 확인 (모든 변이 0인 경우)
private static boolean isEndCondition(double a, double b, double c) {
return a == 0 && b == 0 && c == 0;
}
// 입력된 변의 길이에 따라 적절한 계산 수행
private static void processCase(double a, double b, double c) {
if (a == -1) { // a가 비어 있는 경우 계산
calculateA(b, c);
} else if (b == -1) { // b가 비어 있는 경우 계산
calculateB(a, c);
} else if (c == -1) { // c가 비어 있는 경우 계산
calculateC(a, b);
} else { // 모든 값이 주어진 경우 불가능 처리
System.out.println("Impossible.\n");
}
}
// a 계산 (b와 c로부터 계산)
private static void calculateA(double b, double c) {
if (b > 0 && c > 0 && b < c) { // 유효한 삼각형 조건 확인
double aCalculated = Math.sqrt(c * c - b * b); // 피타고라스 정리 적용
System.out.printf("a = %.3f\n\n", aCalculated);
} else { // 삼각형 조건에 맞지 않으면 불가능 출력
System.out.println("Impossible.\n");
}
}
// b 계산 (a와 c로부터 계산)
private static void calculateB(double a, double c) {
if (a > 0 && c > 0 && a < c) { // 유효한 삼각형 조건 확인
double bCalculated = Math.sqrt(c * c - a * a); // 피타고라스 정리 적용
System.out.printf("b = %.3f\n\n", bCalculated);
} else { // 삼각형 조건에 맞지 않으면 불가능 출력
System.out.println("Impossible.\n");
}
}
// c 계산 (a와 b로부터 계산)
private static void calculateC(double a, double b) {
if (a > 0 && b > 0) { // 유효한 삼각형 조건 확인
double cCalculated = Math.sqrt(a * a + b * b); // 피타고라스 정리 적용
System.out.printf("c = %.3f\n\n", cCalculated);
} else { // 삼각형 조건에 맞지 않으면 불가능 출력
System.out.println("Impossible.\n");
}
}
}
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 8723 - Patyki (2) | 2024.12.27 |
---|---|
[Java] 백준 풀기 17608 - 막대기 (2) | 2024.12.08 |
[Java] 백준 풀기 4458 - 첫 글자를 대문자로 (0) | 2024.11.26 |
[Java] 백준 풀기 5554 - 심부름 가는 길 (2) | 2024.11.24 |
[Java] 백준 풀기 5724 - 파인만 (0) | 2024.10.12 |