알고리즘 문제 풀이/백준
[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을 출력하게 하면 문제를 풀 수 있다.
반응형