728x90
반응형
1. 문제 설명
2. 풀이과정
해당 문제는 각 집합을 구하고 해당 집합에서 원소의 곱이 최고인 집합을 구하면 된다.
여기서 각 원소의 곱이 최대이려면 각 원소의 크기가 최대한 서로 비슷해야 한다.
하여 각 원소의 값은 우선 구하고자 하는 합을 원소의 개수로 나눈 몫의 결과를 우선 저장하고 만약 그 합이 원하는 합의 값보다 작을 수 있으므로 각 원소에 합을 원소의 개수로 나눈 나머지만큼 분배하여 더해주면 해당 집합이 최고의 집합이 된다.
- 만약 자연수 개수가 원소의 합보다 크면 if (n > s)
- 제일 작은 자연수인 1로만 구성되어도 합보다 크게 되므로 최고의 집합이 존재하지 않게 된다. answer = [-1]
- 반면에 자연수의 개수가 원소의 합보다 작거나 같으면 else
- 자연수의 개수만큼 for _ in range(n)
- 원소의 합을 자연수의 개수로 나눈 몫의 결과를 추가한다. answer.append(s // n)
- 그리고 원소의 합을 자연수의 개수로 나눈 나머지만큼 for i in range(s % n)
- 각 원소에 1을 더한다. answer[i] += 1
- 집합의 결과를 오름차순으로 정렬한다. answer.sort()
반응형
3. 소스코드
def solution(n, s):
answer = []
if (n > s):
answer = [-1]
else:
for _ in range(n):
answer.append(s // n)
for i in range(s % n):
answer[i] += 1
answer.sort()
return answer
728x90
반응형
'프로그래머스 > Python' 카테고리의 다른 글
[프로그래머스] [3차] 압축 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.08 |
---|---|
[프로그래머스] 기사단원의 무기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.07 |
[프로그래머스] 네트워크 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.06 |
[프로그래머스] k진수에서 소수 개수 구하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.05 |
[프로그래머스] 전화번호 목록 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.03 |
[프로그래머스] 덧칠하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.02 |
[프로그래머스] 실패율 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.01 |
[프로그래머스] 타겟 넘버 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.31 |