func intToArr(num: Int) -> Array<Int> { var intArr: [Int] = [] var number: Int = num while number > 0 { intArr.insert(number%10, at: 0) number = number/10 } return intArr }
func square(value: Int, exponent: Int) -> Int { var result: Int = 1 for _ in 0..<exponent { result *= value } return result }
func shorter(num: Int) -> Int { let number: Int = num var originalArr: [Int] = intToArr(num: number) var shortArr: [Int] = [] // 중복 제거한 숫자들을 shortArr에 넣는다. for i in 0..<originalArr.count { if i == 0 { shortArr.insert(originalArr[i], at: 0) }else if originalArr[i-1] != originalArr[i] { shortArr.insert(originalArr[i], at: 0) } } // 배열에 담긴 숫자들을 Int로 변환하여 최종 출력 var returnValue: Int = 0 for j in 0..<shortArr.count { returnValue += shortArr[j] * square(value: 10, exponent: j) } return returnValue }
func sqrOf10(num: Int) -> Int { var returnValue: Int = 1 for _ in 0..<num { returnValue *= 10 } return returnValue } func shorter2(num: Int) -> Int { var num: Int = num var shortlist: [Int] = [] while num > 0 { let comparenum = num%10 if shortlist.isEmpty { shortlist.append(comparenum) }else { let lastNum: Int = shortlist.last! if lastNum != comparenum { shortlist.append(comparenum) } } num /= 10 } var index: Int = 0 var result = 0 for i in shortlist { result += i * sqrOf10(num: index) index += 1 } return result }