본문 바로가기
Algorithm/구현

[프로그래머스 lv 1] 예산

by HANNI하니 2023. 5. 30.

사용 언어 - Python3

문제 - 예산

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

정답

런타임 에러 없이 구현 (정답 맞춘 여부 O)

# 런타임 에러
def solution(d, budget):
    # 주어진 예산으로 최대한 많은 부서의 물품 구매
    d.sort() # 주어진 예산
    sum_b = 0 # 예산 합
    for i in range(len(d)):
        sum_b += d[i]
        if sum_b <= budget:
            answer = i+1

    return answer

# 정답1
def solution(d, budget):
    answer = 0
    d.sort() 
    for i in range(len(d)):
        if d[i] <= budget:
            answer += 1
            budget -= d[i] # 변수 만들지 말고, budget에서 빼주기
        else:
            break

    return answer
# 정답2
def solution(d, budget):
    d.sort()
    while budget < sum(d): # sum(d)보다 작을때까지 d의 가장 큰 원소 삭제
        d.pop()
    return len(d) # d의 길이 = budget 안에서 가능한 부서 수

 

 

 

레퍼런스

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글