https://www.acmicpc.net/problem/1024

 

1024번: 수열의 합

첫째 줄에 N과 L이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이고, L은 2보다 크거나 같고, 100보다 작거나 같은 자연수이다.

www.acmicpc.net

 

n, l = map(int, input().split())

for i in range(l, 101):
    x = n / i - (i + 1) / 2
    if int(x) == x:
        x = int(x)
        if x + 1 >= 0:
            for j in range(x + 1, x + i + 1):
                print(j, end=" ")
            break
else:
    print(-1)

브루트 포스로 풀면 시간 초과가 나는 문제.

마지막 else문에 대해서 의아하게 생각할 수도 있다.

for 문이 break를 만나지 않고 정상적으로 종료되었을 때 else로 진입이 가능하다.

 

+ Recent posts