Processing math: 100%
본문 바로가기

PS/백준

[BOJ] 백준 4153 직각삼각형 (Swift)

반응형

문제

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

 

4153번: 직각삼각형

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

www.acmicpc.net

풀이

직각삼각형의 공식은 a2=b2+c2 이다.
a는 가장 큰 변의 길이를 의미함

먼저 입력으로 [0, 0, 0] 이 들어올 때 까지 받기 위해 while-let 문법을 사용하였음
sorted 메서드를 사용해 가장 큰 변의 길이를 구하고 공식과 맞는지 확인하는 방법으로 풀 수 있다.

소스코드

while let triangle = readLine()?.split(separator: " ").map({ Int($0)! }).sorted(by: >),
triangle != [0, 0, 0] {
if triangle[0] * triangle[0] == triangle[1] * triangle[1] + triangle[2] * triangle[2] {
print("right")
} else {
print("wrong")
}
}

후기

직각삼각형 공식을 안다면 쉽게 풀 수 있는 문제

반응형