happy coding

[level 0] 연속된 수의 합 본문

coding study/programmars

[level 0] 연속된 수의 합

yeoonii 2024. 8. 11. 13:48

 

문제 설명

연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.


제한사항
  • 1 ≤ num ≤ 100
  • 0 ≤ total ≤ 1000
  • num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.

내 풀이

등차수열 해서 3n을 사용하려고 힘내다가 죽도밥도 안된 케이스

def solution(num, total):
    ans = []
    
    # 연속된 수 중 가운데
    n = total // num
    
    a = num // 2
    
    for i in range(-a, num-a):
        if num%2 == 0:
            ans.append(n+i+1)
        else:
            
            ans.append(n+i)
    
    return ans

 

다른 풀이

def solution(num, total):
    answer = []
    var = sum(range(num+1))
    diff = total - var
    start_num = diff//num
    answer = [i+1+start_num for i in range(num)]
    return answer
def solution(num, total):
    d=0
    for i in range(1, num):
        d += i
    start=(total-d)//num
    answer = [i for i in range(start, start+num)]
    return answer

'coding study > programmars' 카테고리의 다른 글

[level 1] 옹알이 (2)  (0) 2024.07.02
[level 1] 소수 찾기  (0) 2024.07.02
[level 1] 소수 만들기  (0) 2024.07.01
[level 1] 과일 장수  (0) 2024.07.01
[level 1] 푸드 파이트 대회  (0) 2024.07.01
Comments