본문 바로가기
Algorithm/프로그래머스

[프로그래머스] 파이썬 문제풀이 - 최고의 집합

by whdgus928 2023. 1. 13.

https://school.programmers.co.kr/learn/courses/30/lessons/12938

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

첫 풀이

1. n이 2가 아니기에 단순히 모든 조합을 하기에는 복잡할거같다고 생각해 규칙을 찾으려고했습니다.

2. s를 최대 몫으로 나누고 나머지들은 하나씩 분배할때 곱이 최대값을 갖는다는 사실을 발견했습니다.

def solution(n, s):
    a=s//n
    if s//n<=0:
        return [-1]
    b=s%n
    
    answer = []
    for _ in range(n-b):
        answer.append(s//n)
    
    for i in range(b):
        answer.append(a+1)
        
    return answer

더 나은 답안

이번 문제는 깔끔하게 잘 푼거같습니다.

 

배운 점

1. 복잡한 경우는 규칙을 찾기위해 노력하자

반응형

댓글