S E P H ' S

[Python] 최고의 집합 본문

Algorithm/Programmers

[Python] 최고의 집합

yoseph0310 2021. 9. 5. 17:27
 

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

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

programmers.co.kr

풀이

1. n이 s보다 크면 집합을 만들 수 없으므로 [-1] 리턴

2. s를 n으로 나눈 몫을 n개 만큼 answer에 append

3. s를 n으로 나눈 나머지를 1씩 뒷쪽부터 더해준다.

 

def sol(n, s):
	answer = []
    if n > s: return[-1]
    
    v = s // n
    for i in range(n):
    	answer.append(v)
    
    idx = len(answer) - 1
    for i in range(s % n):
    	answer[idx] += 1
        idx -= 1
    
    return answer

'Algorithm > Programmers' 카테고리의 다른 글

[Python] 야근 지수  (0) 2021.09.07
[Python] 줄 서는 방법  (2) 2021.09.07
[Python] 하노이의 탑  (0) 2021.09.04
[Python] N-Queen  (0) 2021.09.04
[Python] 주식가격  (0) 2021.09.04