풀이 과정

  1. 곱이 최대가 되려면 집합의 모든 수가 비슷한 값을 가질때가 최대이다
    • 예시) n = 3, s = 9라면, (3, 3, 3)이 최대값
  2. 따라서.. s를 n으로 나눈 값들을 넣어 주고, 나머지값은 n+1을 넣어서 채워준다.
    • 즉, s//n을 (n - (s % n))개 넣어주고, (s//n)+1을 (s % n)개 넣어주면 된다.
  3. 결과값을 오름차순으로 정렬해준다.

소스 코드

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

+ Recent posts