알고리즘 문제 풀이/백준

[Algorithm] 백준 - 직각삼각형 (4153) (Kotlin)

참깨빵위에참깨빵_ 2024. 9. 19. 15:12
728x90
반응형

 

피타고라스의 정리만 떠올린다면 어렵지 않게 풀 수 있다. 여러 입력을 받으면서 "0 0 0"을 받으면 프로그램이 종료되게 하는 것에 주의하면 된다.

 

fun main() {
    while (true) {
        val list = readln()
            .split(" ")
            .map { it.toInt() }
            .sortedDescending()
        if (list == listOf(0, 0, 0)) {
            break
        }
        val left = list[0] * list[0]
        val right = (list[1] * list[1]) + (list[2] * list[2])
        if (left == right) {
            println("right")
        } else {
            println("wrong")
        }
    }
}

 

sorted()를 쓰든 sortedDescending()을 쓰든 상관없다. 본인에게 더 편한 메서드를 사용한다.

계속 입력받아야 하기 때문에 무한 while문을 만들었고 입력받은 값을 공백으로 split한 다음, 정수로 바꿔서 내림차순으로 정렬한다.

이 때 종료 조건인 "0 0 0"을 받으면 무한 while문을 탈출하게 break를 사용했다.

그리고 가장 큰 수의 제곱이 다른 두 수의 제곱들의 합과 같은지 확인해서 같으면 right, 다르면 wrong을 출력하게 하면 문제를 풀 수 있다.

반응형