티스토리 뷰

728x90
반응형

https://programmers.co.kr/learn/courses/30/lessons/12954?language=swift 

 

코딩테스트 연습 - x만큼 간격이 있는 n개의 숫자

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

programmers.co.kr

 


 

<나의 풀이>

func solution(_ x:Int, _ n:Int) -> [Int64] {
    if (x < -10000000 || x > 10000000) && (n < 1 || n > 1000 )  { 
        return []
    }
    
    var result = [Int64]()
    var currentNumber = Int64(x)
    
    for _ in 0..<n {
        result.append(currentNumber)
        currentNumber += Int64(x)
    }

    return result
}

 

 


 

<다른 사람의 풀이>

func solution(_ x:Int, _ n:Int) -> [Int64] {
    return Array(1...n).map { Int64($0 * x) }
}

 

func solution(_ x:Int, _ n:Int) -> [Int64] {
    var solutionArray: [Int64] = []
    //x 부터 시작해서 x 만큼씩 커지는 n개의 정수
    for number in 1...n {
        let mutatedNumber = number * x
        solutionArray.append(Int64(mutatedNumber))
    }

    return solutionArray
}

- 조건문의 변수와 곱셈을 이용하면 기존 내 코드보다 사이드 이펙트가 없는 형태로 할 수 있지 않을까?

728x90
반응형
댓글