알고리즘 - 프로그래머스 두 정수 사이의 합 (Swift)

2020. 6. 30. 17:31Algorism

반응형

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.제한 조건

  • a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
  • a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
  • a와 b의 대소관계는 정해져있지 않습니다.

간단한 문제라고 생각하여 아래 처럼 진행하였지만 4번 문제 실행 시간 초과...

func solution(_ a:Int, _ b:Int) -> Int64 {=
    return Int64(Array( a<b ? a...b : b...a ).reduce(0) { $0 + $1 })
    // return Int64(Array( a<b ? a...b : b...a ).reduce(0, +)
}

 

함수 안에가 최적화가 덜 되어있나?...

func solution(_ a:Int, _ b:Int) -> Int64 {
    var sum = 0
    Array( a<b ? a...b : b...a ).map { sum += $0 }
    return Int64(sum)
}

 

... 진짜 모르겠다.. 기본으로 가자.. 오잉.. 통과..!? 

func solution(_ a:Int, _ b:Int) -> Int64 {
    var sum = 0
    
    for a in a<b ? a...b : b...a {
        sum += a
    }
  
    return Int64(sum)
}

 

 

다른 분들이 푼 풀이를 보니.. 맨위에내용이 13일날은 통과가 되었던거 같다. 

프로그래머스도 너무 믿으면 안되겠지만

그래도 내부 함수마다 성능 차이가 많이 있는 것 같아 다른 사이트에서 효율 분석으로도 풀어 봐야겠다.

반응형