https://school.programmers.co.kr/learn/courses/30/lessons/12938
모범 답안
def solution(n, s):
answer=[]
if s < n:
return [-1]
for _ in range(n):
answer.append(s//n)
indexs = len(answer)-1
for i in range(s - sum(answer)):
answer[indexs] += 1
indexs -= 1
return answer
원소의 곱이 최대가 되려면 원소끼리의 차가 적어야 하기 때문에 s//n을 answer에 n번 넣은 후
원소의 합에서 모자란 수만큼 for문을 돌려 answer의 마지막 인덱스부터 1을 더해가면 답을 구할 수 있다.
참조
https://minnit-develop.tistory.com/14
[Python/프로그래머스/Level3] 최고의 집합
문제 자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 집합으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 각 원소의 합이 S가 되는 수의 집합 위 조건을
minnit-develop.tistory.com
'코딩테스트 > programmers (python)' 카테고리의 다른 글
Programmers / 2단계 / [1차]프렌즈4블록 / python / 2018 KAKAO BLIND RECRUITMENT (1) | 2024.03.26 |
---|---|
Programmers / 2단계 / 2 x n 타일링 / python (0) | 2024.03.25 |
Programmers / 2단계 / 택배상자 / python (0) | 2024.03.22 |
Programmers / 2단계 / 숫자 변환하기 / python (0) | 2024.03.22 |
Programmers / 2단계 / 롤케이크 자르기 / python (0) | 2024.03.19 |