Daeng iOS

[프로그래머스 코테 기초 Swift] #3-4 더 크게 합치기 본문

알고리즘 & 코딩테스트/프로프래머스

[프로그래머스 코테 기초 Swift] #3-4 더 크게 합치기

U_Daeng 2024. 5. 22. 19:51

프로그래머스 코딩 기초 트레이닝의 Day3은 "연산"에 관한 문제다

🗒️ 문제

✏️ 내 풀이 

func solution(_ a:Int, _ b:Int) -> Int {
    let result1: String = [a, b].map({String($0)}).joined()
    let result2: String = [b, a].map({String($0)}).joined()
    let result3: Int = [result1, result2].map({Int($0)!}).max()!
    return result3
}

 

a, b 순서로 map() joined()를 활용해서 붙이고 그 반대로도 붙인다 

지금은 그 결과값들이 String 이기 때문에 map() 을 활용해 Int로 일괄 변환하고 

max()로 둘 중 큰 값을 구해서 반환한다 

 

🔍 다른 풀이

1) 
func solution(_ a:Int, _ b:Int) -> Int {
    return max(Int(String(a) + String(b))!, Int(String(b) + String(a))!)
}

2) 
func solution(_ a:Int, _ b:Int) -> Int {
    let c = Int("\(a)\(b)")!, d = Int("\(b)\(a)")!
    return c > d ? c : d
}

 

1) max의 파라미터로 a,b를 합친 것과 b,a 순서로 합친 것을 넣어줘서 더 큰 것을 반환하도록 한다 

2) 문자열을들 보간법으로 합치고 Int로 변환해준 후 삼항연산자로 비교해주는 방법도 있다