알고리즘[Python]/프로그래머스
[ Lv 3 ] 최고의 집합
병훈1234
2021. 7. 26. 10:26
풀이 과정
- 곱이 최대가 되려면 집합의 모든 수가 비슷한 값을 가질때가 최대이다
- 예시) n = 3, s = 9라면, (3, 3, 3)이 최대값
- 따라서.. s를 n으로 나눈 값들을 넣어 주고, 나머지값은 n+1을 넣어서 채워준다.
- 즉, s//n을 (n - (s % n))개 넣어주고, (s//n)+1을 (s % n)개 넣어주면 된다.
- 결과값을 오름차순으로 정렬해준다.
소스 코드
def solution(n, s):
answer = []
temp = s // n
p = s
if temp == 0:
return [-1]
if s % n == 0:
answer = [temp] * n
else:
answer = [temp + 1] * (s % n) + [temp] * (n - (s % n))
answer.sort()
return answer
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges