본문 바로가기
PS/BOJ

[코틀린, 자바] 백준 9723 - Right Triangle (boj kotlin java)

by Nahwasa 2022. 7. 18.

문제 : boj9723

 

  코틀린이랑 자바랑 둘 다 짜는 이유는 우선 코틀린으로 짜보고 -> 자바로 짠 후에 -> 자바를 코틀린으로 변경해서 쓸만한거 줍줍하기 위해서이다. 코틀린 익히기에 상당히 괜찮은 것 같다.

 

  아무튼 문제는 직각 삼각형을 찾으면 된다. 즉, 3개의 변을 입력으로 받은 후에 가장 긴 변의 제곱이 나머지 두 변의 제곱의 합이 되는지 확인하면 된다. 그렇게 된다면 YES, 그렇지 않다면 NO를 출력해주면 된다.

 

코드(kotlin) : github

import java.io.BufferedReader
import java.io.InputStreamReader
import java.util.*

fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
    val t = readLine().toInt()
    var tc = 0
    val sb = StringBuilder()
    repeat(t) {
        var st = StringTokenizer(readLine())
        val arr = IntArray(3)
        for (i in 0..2) arr[i] = st.nextToken().toInt()
        arr.sort()
        val answer = arr[2]*arr[2]==arr[0]*arr[0]+arr[1]*arr[1]
        sb.append(String.format("Case #%d: %s\n", ++tc, if (answer) "YES" else "NO"))
    }
    println(sb)
}

 

코드(java) : github

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.util.Arrays;
    import java.util.StringTokenizer;

    public class Main {
        private void solution() throws Exception {
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            int t = Integer.parseInt(br.readLine());
            StringBuilder sb = new StringBuilder();
            for (int tc = 1; tc <= t; tc++) {
                StringTokenizer st = new StringTokenizer(br.readLine());
                int[] arr = new int[3];
                for (int i = 0; i < 3; i++) arr[i] = Integer.parseInt(st.nextToken());
                Arrays.sort(arr);
                boolean answer = arr[2]*arr[2]==arr[0]*arr[0]+arr[1]*arr[1];
                sb.append(String.format("Case #%d: %s\n", tc, answer?"YES":"NO"));
            }
            System.out.println(sb);
        }
        public static void main(String[] args) throws Exception {
            new Main().solution();
        }
    }

 

댓글