본문 바로가기
코딩 테스트 연습

[알고리즘] 프로그래머스 - 연속된 수의 합

by 코드뭉치 2023. 5. 4.

연속된 수의 합

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. 구해야 하는 것
    # 더해서 total이 되는 연속된 수들의 배열
2. 1을 구하기 위해 필요한 것
    # 기준이 되는 배열의 가운데 수
    # 가운데 수를 기준으로 몇개의 수를 넣어야할지
3. 그 외 고려사항
    # 짝수일 때는 배열의 가운데 수 2개 중 더 작은 수가 구해짐

 

 

처음에 2로 나눈 나머지를 통해 홀수인지 짝수인지 판별,

홀수라면 중간값을 기준으로 num//2을 뺀 부분에서 더한 부분 +1까지,

짝수라면 중간값이 2개 중 왼쪽 수 이므로 시작 부분에 1을 더해준다

if num % 2 == 1:
    answer = [i for i in range(middle_num - num//2, middle_num + num//2 + 1)]
else:
    answer = [i for i in range(middle_num - num//2+1, middle_num + num//2 + 1)]

 

 

def solution(num, total):
    moves = (total - sum(range(1, num+1)))//num
    return [i for i in range(moves+1, num+1+moves)]

댓글