1. 아이디어
▪ n = 2, s = 6 일때 [3,3]가 최대 곱
▪ n = 3, s = 9 일때 [3,3,3]가 최대 곱
▪ 즉, 원소 n개의 분포가 고를수록 집합의 곱이 크다는 점을 이용 -> Greedy
▪ s보다 n이 클 경우 [-1] return
▪ s를 n으로 나눈 몫과 나머지 값 구하기
▪ (n - 나머지 값) 번 만큼 answer 리스트에 몫을 append
▪ (나머지 값) 번 만큼 answer 리스트에 (몫+1)을 append
2. 시간복잡도
▪ O(n)
3. 변수
▪ 나머지, 몫: int
Code
def solution(n, s):
answer = []
if n > s:
return [-1]
x = s // n
remain = s % n
for _ in range(n-remain):
answer.append(x)
for _ in range(remain):
answer.append(x+1)
return answer
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'코딩테스트' 카테고리의 다른 글
[코딩테스트] 프로그래머스 - 숫자 게임 (1) | 2024.03.29 |
---|---|
[코딩테스트] 프로그래머스 - 등굣길 (0) | 2024.03.28 |
[코딩테스트] 프로그래머스 - 단어 변환 (0) | 2024.03.27 |
[코딩테스트] 프로그래머스 - 야근 지수 (0) | 2024.03.27 |
[코딩테스트] 프로그래머스 - 네트워크 (0) | 2024.03.26 |