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

+ Recent posts