[TIL] 주말 code dump

Eden·2024년 12월 1일
1

TIL

목록 보기
56/92
post-thumbnail

프로그래머스: n의 배수 고르기

문제 설명

정수 n과 정수 배열 numlist가 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 반환하는 문제이다.

내가 쓴 코드

import Foundation

func solution(_ n:Int, _ numlist:[Int]) -> [Int] {
    var array: [Int] = []
    for i in numlist {
        if i % n == 0 {
            array.append(i)
        }
    }
    return array
}

리팩토링 후 코드

import Foundation

func solution(_ n: Int, _ numlist: [Int]) -> [Int] {
    return numlist.filter { $0 % n == 0 }
}

배운 점

  • 고차함수 활용: 반복문을 사용해서 조건을 확인하고 배열에 추가하는 과정 대신, Swift의 filter 고차함수를 사용하면 간결하고 명확하게 조건에 맞는 값을 배열로 추출할 수 있다.
  • 코드 가독성 향상: 고차함수를 활용해 코드를 리팩토링하면 코드의 길이가 줄어들고, 의도가 명확해져 가독성이 높아진다. 이를 통해 유지보수하기 쉬운 코드를 작성할 수 있다는 점을 배웠다.

프로그래머스: 약수 구하기

문제 설명

정수 n이 주어질 때, n의 약수를 오름차순으로 담은 배열을 반환하는 문제이다.

내가 쓴 코드

import Foundation

func solution(_ n:Int) -> [Int] {
    var arr: [Int] = []
    for i in 1...n {
        if n % i == 0 {
            arr.append(i)
        }
    }
    return arr
}

리팩토링 후 코드

import Foundation

func solution(_ n: Int) -> [Int] {
    return (1...n).filter { n % $0 == 0 }
}

배운 점

  • 고차함수 활용: 반복문 대신 filter를 사용해 조건에 맞는 값을 추출하는 방식으로 코드를 간결하게 작성할 수 있다.
  • 코드 효율성: 코드가 간결해질 뿐만 아니라, 문제 해결의 의도를 보다 명확하게 표현할 수 있어 코드의 효율성과 가독성을 모두 높일 수 있었다.
profile
Frontend🌐 and iOS

0개의 댓글