728x90
반응형
링크: https://school.programmers.co.kr/learn/courses/30/lessons/12938
아이디어
- s가 1이면 -1 넣고 리턴
- 곱했을 때 가장 큰 수가 나오려면 곱하는 모든 수가 골고루 커야한다.
- s를 n으로 나누고 나머지를 각 수에 뿌려준 수가 곱했을 때 가장 큰 수가 나온다.
- 이 후 오름차순으로 리턴
구현
def solution(n, s):
answer = []
if s == 1:
answer.append(-1)
else:
a = s//n
b = s%n
if b==0:
for i in range(n):
answer.append(a)
else:
for i in range(n):
answer.append(a)
for i in range(b):
answer[i] += 1
answer.reverse()
return answer
음 한 테스트 케이스만 실패가 나온다...
오류 원인 분석
- 이게 s가 1이면 안되는게 아니라 s가 n보다 작으면 불가능하다.
- 첫 조건문만 바꿔주면 될 듯 하다.
구현
def solution(n, s):
answer = []
if s < n:
return [-1]
else:
a = s//n
b = s%n
for i in range(n):
answer.append(a)
if b!=0:
for i in range(b):
answer[i] += 1
answer.reverse()
return answer
굿
마무리
- 또또 문제 똑바로 안봤다.
- ㅠㅠ
728x90
반응형
'코테준비 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 큰 수 만들기 - Python (0) | 2023.09.22 |
---|---|
[프로그래머스] 기지국 설치 - Python (0) | 2023.09.12 |
[프로그래머스] 숫자 게임 - Python (0) | 2023.09.11 |
[프로그래머스] 야근지수 - Python (0) | 2023.09.09 |