[Problem Solving/Java] 백준 4153번 - 직각삼각형

2024. 1. 2. 14:41·알고리즘 문제 풀이 (Problem Solving)

https://www.acmicpc.net/problem/4153

 

4153번: 직각삼각형

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

www.acmicpc.net

문제

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

입력

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

출력

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

첫 번째 시도

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.lang.reflect.Array;
import java.util.ArrayList;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        ArrayList<String> st = new ArrayList<>();

        while (true) {
            String a[] = br.readLine().split(" ");
            int a1 = Integer.parseInt(a[0]);
            int a2 = Integer.parseInt(a[1]);
            int a3 = Integer.parseInt(a[2]);
            int temp = 0;
            
            if (a1 > a2) {
                temp = a1;
                a1 = a2;
                a2 = temp;
                if (a2 <= a3) {
                } else if (a2 > a3) {
                    temp = a2;
                    a2 = a3;
                    a3 = temp;
                }
            } else if (a1 <= a2) {
                if (a2 > a3) {
                    temp = a2;
                    a2 = a3;
                    a3 = temp;
                } else if (a2 <= a3) {
                }
            }

            if (!(a1 == 0 && a2 == 0 && a3 == 0) && (a1 + a2 >= a3) && ((a1 * a1) + (a2 * a2) == a3 * a3)) {
                st.add("right");
            } else if (!(a1 == 0 && a2 == 0 && a3 == 0) && !((a1 + a2 >= a3) && ((a1 * a1) + (a2 * a2) == a3 * a3)))
                st.add("wrong");

            else if (a1 == 0 && a2 == 0 && a3 == 0)
                break;
        }

        for (int i = 0; i < st.size(); i++) {
            System.out.println(st.get(i));
        }
    }
}

해결 방법

  • 삼각형의 주어진 각 세 변을 길이 순으로 정렬한 뒤 작은 두 변의 합이 가장 큰 변의 길이보다 길고, 작은 두 변의 제곱이 가장 긴 변의 길이의 제곱과 같을 때 right를 출력했다. 

어려웠던 점 / 고쳐야할 점

  • 초기에 정렬이 없이 계산하여 오류가 발생했다. 
반응형

'알고리즘 문제 풀이 (Problem Solving)' 카테고리의 다른 글

[Problem Solving/Java] 백준 2292번 - 벌집  (1) 2024.01.02
[Problem Solving/Java] 백준 1002번 - 터렛  (1) 2024.01.02
[Problem Solving/Java] 백준 3009번 - 네 번째 점  (1) 2024.01.02
[Problem Solving/Java] 백준 1085번 - 직사각형에서 탈출  (0) 2024.01.02
[Problem Solving/Java] 백준 4948번 - 베르트랑 공준  (2) 2024.01.02
'알고리즘 문제 풀이 (Problem Solving)' 카테고리의 다른 글
  • [Problem Solving/Java] 백준 2292번 - 벌집
  • [Problem Solving/Java] 백준 1002번 - 터렛
  • [Problem Solving/Java] 백준 3009번 - 네 번째 점
  • [Problem Solving/Java] 백준 1085번 - 직사각형에서 탈출
LoopThinker
LoopThinker
모르는 것을 알아가고, 아는 것을 더 깊게 파고드는 공간
  • LoopThinker
    CodeMemoir
    LoopThinker
  • 전체
    오늘
    어제
    • 분류 전체보기 (237)
      • 개발 (Development) (170)
        • Algorithm (1)
        • Angular (1)
        • AWS (7)
        • DeepSeek (2)
        • Docker (7)
        • Git (3)
        • Java (36)
        • JavaScript (4)
        • Kafka (5)
        • Kubernetes (4)
        • Linux (7)
        • PostgreSQL (38)
        • Python (33)
        • React (3)
        • TypeScript (3)
        • Vue.js (5)
        • General (11)
      • 데이터 분석 (Data Analysis) (1)
      • 알고리즘 문제 풀이 (Problem Solving.. (27)
      • 자격증 (Certifications) (24)
        • ADsP (14)
        • 정보처리기사 (4)
        • Linux Master (5)
        • SQLD (1)
      • 기술 동향 (Tech Trends) (12)
      • 기타 (Others) (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    백준온라인저지
    리눅스 마스터 2급 2차
    PostgreSQL
    docker
    Linux master
    DevOps
    javascript
    deepseek
    JPA
    리눅스 마스터 2급
    python
    MyBatis
    JSON
    Kafka
    springboot
    java
    timescaledb
    Vue.js
    Kubernetes
    ADsP
    백준자바
    Linux
    백준알고리즘
    자바
    백준
    데이터분석
    오답노트
    AWS
    pandas
    파이썬
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
LoopThinker
[Problem Solving/Java] 백준 4153번 - 직각삼각형
상단으로

티스토리툴바