반응형

안녕하세요. 개발 중인 정주입니다.

 

오늘은 프로그래머스 - 예산 문제를 풀었습니다.

 


목차


    Github

     

    GitHub - jeongju9216/SwiftAlgorithm: 스위프트 알고리즘

    스위프트 알고리즘. Contribute to jeongju9216/SwiftAlgorithm development by creating an account on GitHub.

    github.com

     

    문제 링크

    https://programmers.co.kr/learn/courses/30/lessons/12982

     

    코딩테스트 연습 - 예산

    S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는

    programmers.co.kr

     


    풀이

    d 배열을 정렬하여 신청 금액이 적은 부서부터 예산을 분배하면 최대한 많은 부서에 예산을 지원할 수 있습니다.

    이번 문제도 반복문으로 풀었다가 filter를 사용하면 딱인 것 같아서 filter로 수정해봤습니다.

     


    전체 코드

    
          
    import Foundation
    func solution(_ d:[Int], _ budget:Int) -> Int {
    var result: Int = 0
    var budget = budget
    result = d.sorted().filter {
    budget -= $0
    return budget >= 0
    }.count
    return result
    }
    let d = [1,3,2,5,4]
    let budget = 9
    print(solution(d, budget))

    아직은 초보 개발자입니다.

    더 효율적인 코드 훈수 환영합니다!

    공감 댓글 부탁드립니다.

     

     

    반응형
    유정주