연속된 수의 합 - Python

2023. 10. 1. 19:10공부/📝 프로그래머스

def solution(num, total):
    answer = []
    if num % 2:
        start = total // num - (num - 1) // 2
        end = total // num + (num - 1) // 2
        for i in range(start, end + 1):
            answer.append(i)
    else:
        start = total // num - num // 2 + 1
        end = total // num + num // 2
        for i in range(start, end + 1):
            answer.append(i)
    return answer


# Test Cases
print(solution(3, 12))
print("=" * 50)
print(solution(5, 15))
print("=" * 50)
print(solution(4, 14))
print("=" * 50)
print(solution(5, 5))
print("=" * 50)

  두 가지 경우로 나누어서 풀었습니다.

 


def solution(num, total):
    return [(total - (num * (num - 1) // 2)) // num + i for i in range(num)]

  그런데 이 풀이를 보니 제 풀이에서 좀 더 간략하게 만들 수 있었는데 동작이 되니까 생각을 멈춘게 아쉽게 느껴지네요.

 


 

프로그래머스

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

programmers.co.kr

 

'공부 > 📝 프로그래머스' 카테고리의 다른 글

겹치는 선분의 길이 - Python  (0) 2023.10.01
안전지대 - Python  (0) 2023.10.01
다음에 올 숫자 - Python  (0) 2023.10.01
OX퀴즈 - Python  (0) 2023.10.01
특이한 정렬 - Python  (0) 2023.10.01