728x90
https://school.programmers.co.kr/learn/courses/30/lessons/120923
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
<나의 답>
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