https://www.acmicpc.net/problem/4153
문제 분석
입력 받은 3개의 변 길이를 통해 삼각형을 만든다.
그 삼각형이 직각 삼각형인지를 판단해 직각삼각형일 경우 right, 아닐 경우 wrong을 출력하면 된다.
풀이
1. 입력으로 0, 0, 0이 들어오기 전 까지는 계속해서 답을 출력해야 하므로 while(true)로 반복문 생성,
이 반복문 내에 코드 작성
2. 변 세개를 받을 int 배열 arr 생성하여 Scanner로 정수 3개 입력 받음
3. 0, 0, 0 입력 시 빠져나오도록하는 분기 작성
4. 두개의 변 길이가 같을 경우는 이등변 삼각형이 되기 때문에 직각이 만들어질 수 없음. wrong 분기 처리
5. 직각삼각형 구하는 공식을 이용하여 right 여부 판단
가장 긴 변^2 = 변a^2 + 변b^2
https://www.dongascience.com/news.php?idx=25234
코드
public class Example4153 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuffer bf = new StringBuffer();
while(true) {
int[] arr = new int[3];
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
if (arr[0] == 0 && arr[1] == 0 && arr[2] == 0) {
System.out.println(bf.toString());
return;
}
if (arr[0] == arr[1] && arr[0] == arr[2]) {
bf.append("wrong\n");
continue;
}
int max = 1;
Arrays.sort(arr);
if (Math.pow(arr[2], 2) == Math.pow(arr[0], 2) + Math.pow(arr[1],2)) {
bf.append("right\n");
} else {
bf.append("wrong\n");
}
}
}
}
댓글 피드백은 언제나 환영합니다!
'CodingTest > 백준' 카테고리의 다른 글
백준 9012번 - 괄호 (0) | 2023.09.28 |
---|---|
백준 10845 - 큐 (0) | 2023.09.28 |
백준 1654번 - 랜선 자르기 (0) | 2023.09.22 |
백준 10828번-스택(JAVA) (0) | 2020.09.13 |
백준 1920번, 10815번-수 찾기, 숫자카드(JAVA) (0) | 2020.09.11 |