728x90
https://school.programmers.co.kr/learn/courses/30/lessons/120923
<나의 답>
def solution(num, total):
average = total // num
return [i for i in range(average - (num-1)//2, average + (num + 2)//2)]
- 연속된 수이기 때문에 평균을 기준으로 좌측, 우측 끝 값만 구하면 된다
- 좌, 우측 숫자의 개수는 num이 짝수이냐 홀수이냐에 따라 다르기 때문에 왼쪽 끝 값을 구하기 위해서는 num - 1로 하고 우측은 num + 2를 하면 짝수, 홀수를 구분하지 않고 연속적인 리스트를 구할 수 있다
<다른 사람 풀이>
def solution(num, total):
return [(total - (num * (num - 1) // 2)) // num + i for i in range(num)]
이거 진짜 간단하게 풀었음...
728x90
'CodingTest > [프로그래머스 LV.0]' 카테고리의 다른 글
프로그래머스 LV.0 - 피자 나눠 먹기 (3)[Python] (0) | 2023.01.20 |
---|---|
프로그래머스 LV.0 - 잘라서 배열로 저장하기[Ptrhon] (0) | 2023.01.10 |
프로그래머스 LV.0 - 종이자르기[Python] (0) | 2023.01.09 |
프로그래머스 LV.0 - 다음에 올 숫자[python] (0) | 2022.12.26 |
프로그래머스 LV.0 - 옹알이[python] (1) | 2022.12.26 |