티스토리 뷰

 

*첫번째 생각

def solution(num, total):
    answer = []
    for i in range(1,502):
        sum = 0
        for j in range(i,i+num):
            sum += j
        if sum == total:
            for s in range(i, i+num):
                answer.append(s)
            break
    return answer

1부터 시작해서 501까지,

num 수만큼 연속된 숫자를 직접 더해 봄.

num이 5라면 j는 1~5, 2~6, 3~7 ... 바꿔가면서 sum에 더하고,

sum이 total과 같으면 그 범위의 수 하나 하나를 answer[]에 append 함.

 

될 것 같은데, 10개중 4개의 테스트 케이스에서 에러가 발생....

 

 

 

*딴 생각

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

 

2개의 연속된 수라면 1,2를 빼고 난 나머지가 연속된 수 갯수인 2로 나눠 떨어질 경우,
그 몫을 1,2에 더하면 연속된 두 수가 됨

3개의  연속된 수라면 1,2,3을 빼고 난 나머지가 연속된 수 갯수인 3으로 나눠 떨어질 경우,
그 몫을 1,2,3에 더하면 연속된 세 수가 됨

 

total 15이고, 2개의 연속된 수(num)라면,

15-1-2 = 12

12%2 = 0 , 12//2 = 6

answer[1+6, 2+6] = [7,8]

 

total 15이고, 3개의 연속된 수(num)라면,

15-1-2-3 = 9

9%3 = 0 , 9//3= 3

answer[1+3, 2+3, 3+3] = [4,5,6]

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함