[프로그래머스 / Level 1] 예산 (파이썬)

2022. 4. 10. 21:29·🎲 알고리즘 공부/프로그래머스

📝 문제 요약

> S사에서는 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다.

 

부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하도록 solution 함수를 완성해주세요.

 

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

 

코딩테스트 연습 - 예산

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

programmers.co.kr

 

제한사항과 입출력 예시

- d에는 부서별로 신청한 금액이 각각 들어있다. budget은 회사의 예산이다. 우리는 budget과 d 원소들을 이용해 최대 몇 개의 부서에게 예산을 지원해줄 수 있는 지를 나타내야한다.

 

🎨 풀이

💡 첫번째 시도 = 성공(은 아니지만 다른 코드가 기억이 안난다 ㅠㅠ)

 

def solution(d, budget):
    answer = 0
    d.sort()
    for num in d:
        budget -= num
        if budget < 0 :
            return answer        
        else : 
            answer += 1
    return answer

 

> 이 코드의 핵심은 d 배열을 정렬한 후 앞에서부터 하나씩 가능한지 비교해나가는 것이다. 최대한 많은 부서를 지원하기 위해서는 예산을 적게 요구하는 곳부터 충당해주어야하기 때문이다.

 

1. 먼저 예산을 낮은 순서대로 정렬을 한다.

2. d 배열을 for문을 돌리면서 budget - num 을 해준다.

  3-1. 만약 budget이 0이라면 answer을 리턴해준다. 

  3-2. 만약 budget이 아직 0이 아니라면 answer에 1을 더해준다. (부서 하나 더 지원해줄 수 있다는 뜻이다)

4. for문 다 돌았으면 answer을 리턴해준다. (모든 부서를 다 지원한 경우)  

끝~

 

 

⭐ 느낀점

 

> 이 문제도 좀 쉬웠던 것 같다. 하하 이런 문제만 매일 나왔으면 좋겠다. 그러면 발전이 없겠지? 허허..^^ 열심히 해봐야겠다. 요즘 좀 제자리 걸음하는 느낌도 살짝 든다. 쉬운 문제만 리뷰해서 그런가..? 그럴 수도 있겠다는 생각이 든다. 나는 뭔가 어디서 많이 멘붕이 왔거나, 이거는 안되겠다 싶은 그런 문제들을 해결할 때 발전을 했던 것 같은데 요즘에는 그냥 할만한 문제들만 풀어서 그런 것 같다. 레벨2를 빡세게 해봐야겠다.

 

'🎲 알고리즘 공부 > 프로그래머스' 카테고리의 다른 글

[프로그래머스 / Level 1] 2016년 (파이썬)  (0) 2022.04.12
[프로그래머스 / Level 1] 두 개 뽑아서 더하기 (파이썬)  (0) 2022.04.11
[프로그래머스 / Level 1] 3진법 뒤집기 (파이썬)  (0) 2022.04.09
[프로그래머스 / Level 1] 약수의 개수와 덧셈 (파이썬)  (0) 2022.04.08
[프로그래머스 / Level 1] 폰켓몬 (파이썬)  (0) 2022.04.07
'🎲 알고리즘 공부/프로그래머스' 카테고리의 다른 글
  • [프로그래머스 / Level 1] 2016년 (파이썬)
  • [프로그래머스 / Level 1] 두 개 뽑아서 더하기 (파이썬)
  • [프로그래머스 / Level 1] 3진법 뒤집기 (파이썬)
  • [프로그래머스 / Level 1] 약수의 개수와 덧셈 (파이썬)
듬듬
듬듬
  • 듬듬
    두드림
    듬듬
  • 전체
    오늘
    어제
    • 분류 전체보기 (267)
      • 📑 신입일기 (35)
      • 🎲 알고리즘 공부 (192)
        • 프로그래머스 (76)
        • 백준 (96)
        • 코드업 (19)
      • 📘 독서 (0)
      • 💌 일상 (12)
        • 일상 (5)
        • 기록 (7)
      • 📜 자격증 (2)
        • 정보처리기사 (2)
      • 학교 공부 (20)
        • ICT 개론 (14)
        • 리눅스 (6)
      • ChatGPT 랑 놀기 (0)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    til
    스프링 부트
    오버워치
    컨텐더스
    연습문제
    코테
    BOJ
    티스토리챌린지
    백준
    신입일기
    행렬덧셈
    오블완
    폰켓몬
    충무로
    정처기
    50문답
    피보나치수
    codeup
    코린이
    스프링부트
    파이썬
    코민이
    프로그래머스
    정보처리기사
    nodejs
    6월 목표
    코드업
    카카오
    찬양추천
    일기
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
듬듬
[프로그래머스 / Level 1] 예산 (파이썬)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.