풀이 과정
- 곱이 최대가 되려면 집합의 모든 수가 비슷한 값을 가질때가 최대이다
- 예시) 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
'알고리즘[Python] > 프로그래머스' 카테고리의 다른 글
[ Lv 3 ] [ DFS ] 여행경로 (0) | 2021.08.13 |
---|---|
[ Lv 3 ] 줄 서는 방법 (0) | 2021.07.26 |
[ Lv 3 ] 야근 지수 (0) | 2021.07.25 |
[ Lv 3 ] 기지국 설치 (0) | 2021.07.24 |
[ Lv 3 ] 길 찾기 게임 (0) | 2021.07.24 |