[iOS / Swift] 더 크게 합치기

justdotheg·2024년 1월 20일

문제

내 풀이

import Foundation

func solution(_ a:Int, _ b:Int) -> Int {
    
    if Int(String(a) + String(b))! >= Int(String(b) + String(a))! {
        return Int(String(a) + String(b))!        
    } 
    else {
        return Int(String(b) + String(a))!        
    }
}

최적화 풀이

import Foundation

func solution(_ a:Int, _ b:Int) -> Int {

    return Int("\(a)\(b)")! >= Int("\(b)\(a)")! ? Int("\(a)\(b)")! : Int("\(b)\(a)")!   
    
}

💁🏻‍♂️ 요약

  • max 연산자를 사용하면 시간초과가 뜨고, if else 문으로 분기하여 비교하는 것이 더 빠르다.
  • max 연산자보다는 삼항 연산자가 더 빠른듯하다. max 연산자를 사용했을 떄는 시간 초과가 떴다.
  • String( ) 타입 변환 연산자보다 스트링 인터폴레이션 "()"가 더 빠르다.
  • Int( )는 return 타입이 Optional()이지만, String( )은 그냥 String이다.
    왜냐하면 String을 Int로 변환시 정수로 변환이 가능/불가능 두가지여서 return 타입이 Optional Int이지만,
    Int를 String으로 변환시 무조건 스트링형으로 변환이 가능하기 때문에 return 타입은 그냥 String이다.

0개의 댓글