Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 편스토랑
- Real or Not? NLP with Disaster Tweets
- 프로그래머스 파이썬
- 캐치카페
- 백준
- github
- hackerrank
- leetcode
- 편스토랑 우승상품
- 금융문자분석경진대회
- 우분투
- AI 경진대회
- programmers
- gs25
- 코로나19
- Docker
- 데이콘
- 파이썬
- Git
- dacon
- 맥북
- 프로그래머스
- Baekjoon
- Kaggle
- 더현대서울 맛집
- ChatGPT
- ubuntu
- PYTHON
- 자연어처리
- SW Expert Academy
Archives
- Today
- Total
솜씨좋은장씨
[Programmers] 최고의 집합 (Python) 본문
728x90
반응형
1일 1문제 280일차!
오늘의 문제는 프로그래머스의 최고의 집합 문제입니다.
Solution
def solution(n, s):
answer = []
if s // n < 1:
answer = [-1]
else:
s_n = s // n
for i in range(n):
answer.append(s_n)
s_p_n = s % n
idx = len(answer) - 1
for i in range(s_p_n):
answer[idx-i] = answer[idx-i] + 1
return answer
Solution 해설
먼저 n이 2 s가 1인 경우처럼 n개의 숫자로 s를 만들 수 없는 경우에는 [-1] 을 정답으로 return 하도록 합니다.
그렇지 않은 경우
먼저 정답 리스트 속 원소의 개수가 n개가 되도록 만들어 줍니다.
이렇게 하는 이유는 최대의 곱을 만들기 위해서는 최대한 균일한 숫자를 분포시켜주는 것이 중요하기 때문입니다.
s를 n으로 나눈 숫자를 만들어주고 이 숫자가 1이상인 경우
가장 뒤의 원소부터 1을 더해주도록 합니다.
'Programming > 코딩 1일 1문제' 카테고리의 다른 글
[leetCode] 1539. Kth Missing Positive Number (Python) (0) | 2020.12.27 |
---|---|
[leetCode] 92. Reverse Linked List II (Python) (0) | 2020.12.26 |
[Programmers] 이상한 문자 만들기 (Python) (0) | 2020.12.19 |
[Programmers] 두 개 뽑아서 더하기 (Python) (0) | 2020.12.18 |
[leetCode] 1464. Maximum Product of Two Elements in an Array (Python) (0) | 2020.12.17 |
Comments