포스트

167. 두 수의 나눗셈

나의 코드 (24.1.24)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import Foundation

func solution(_ num1:Int, _ num2:Int) -> Int {
    
    var answer = 0
    
    if num1 > 0 && num1 <= 100 {
        
        if num2 > 0 && num2 <= 100 {
            
            answer = Int(Double(num1) / Double(num2) * 1000)
             
        }
    }
    
    return answer
}

처음에 막힌 이유. 형변환인데 처음에는 Double로 num1/num2를 전체로 단순하게 감싸서 계산을 하면 될것같다는 안일한 생각을 하였다. 실제로 답이 틀려서 playground를 통해 실제로 나눈값을 출력을 해보니 3/2 = 1 이 나왔다.

그래서 전체를 감싸는 것이 아닌, num1, num2를 개별로 Double로 형변환을 한뒤에 나누니 1.5로 잘 나오는 것을 확인하였다.

하지만 answer의 형태는 Int 이므로 아무리 뒤에 1000을 곱하여도 우측의 자료형은 현재 Double 이므로 answer와 자료형을 일치시키기 위해 또다시 전체를 Int로 감싸주었다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.