DevKim

[Python] 프로그래머스 LV.03 - 최고의 집합 본문

알고리즘 PS

[Python] 프로그래머스 LV.03 - 최고의 집합

on_doing 2021. 3. 13. 17:52
728x90

programmers.co.kr/learn/courses/30/lessons/12938

 

코딩테스트 연습 - 최고의 집합

자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 "집합"으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 각 원소의 합이 S가 되는 수의 집합 위 조건을 만

programmers.co.kr

 

[ 알고리즘 ]

구현

 

[문제 접근]

문제 자체는 어렵지 않으나, 하나씩 다 구해서 최대값 구하면 안되는 문제이고,

아이디어가 딱 떠오르면 풀리는 문제 중 하나이다. 두 수의 차가 적어야 곱이 큰 것만 깨달으면 빠르게 풀어나갈 수 있는 문제

 

 

[코드]

def solution(n, s):
    answer = []
    if n > s: # 존재하지 않는 경우
        return [-1]
    
    # 두 수의 차가 적어야함
    while n>0:
        
        answer.append(s//n)
        s=s-(s//n)
        n=n-1
    
    return answer
728x90
Comments