나의 개발일지

[프로그래머스] Lv.3 최고의 집합 [Python, 파이썬] 본문

프로그래머스

[프로그래머스] Lv.3 최고의 집합 [Python, 파이썬]

YoonJuHan 2023. 12. 15. 16:16
  • 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12938#
  • 🔑 몫과 나머지
    • 먼저 s를 n으로 나눈 몫으로 리스트를 채움
    • n = 5, s = 199 일 때
    • [39, 39, 39, 39, 39] 만들어짐
    • 합이 199가 되려면 4가 부족함
    • 부족한 만큼 리스트의 뒤에서부터 1씩 나눠줌 (오름차순 정렬로 리턴해야 하기 때문)
    • [39, 40, 40, 40, 40] 만들어짐 
    • 끝 ✨

 

def solution(n, s):
    answer = []
    
    if n > s:
        return [-1]
    
    for i in range(n):
        answer.append(s // n)           # 골고루 나누기
    
    remain_n = s % n                    # 골고루 나누고 남는 숫자
    
    for i in range(1, remain_n + 1):    # 남은 숫자들을 뒤에서부터 1씩 골고루 나눠준다.  
        answer[-i] += 1
    
    return answer
Comments