본문 바로가기
Algorithm/문제풀이_백준

Swift) 백준 4153번 (직각삼각형)

by Joahnee 2021. 8. 15.

요구능력 : 피타고라스의 정리를 아느냐

 

코드설명 : 

입력받은 수 중에 가장 큰 수가 빗면이다.

그럼 가장큰수를 제외하고 나머지 가로, 세로변의 제곱을 더해서 누적해줬다.

그리고 마지막에는 피타고라스의 정리 빗면^2 == 가로^2 + 세로^2 를 이용해서 맞으면 right 틀리면 wrong을 출력했다.

 

후기 : 한번 제출하고 실패한 다음에 입력숫자 순서는 무작위라는 것을 알게되었고, if문을 많이쓰면 머리쓸필요없지만 쓰기싫어서 while문으로 처리했다.

while true {
    var jegop = 0
    var i = 0
    let arr = readLine()!.split(separator: " ").map{ Int($0)! }
    
    if arr == [0, 0, 0] {
        break
    }
    
    while i < arr.count {
        if i != arr.firstIndex(of: arr.max()!) {
            jegop += arr[i] * arr[i]
        }
        i += 1
    }
    
    
    if jegop == (arr.max()! * arr.max()!) {
        print("right")
    }else {
        print("wrong")
    }
    
}

댓글