IT/Algorithm

[python] 백준 1024: 수열의 합

imsunbow 2025. 3. 15. 18:50

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

 

[코드]

#백준 1024: 수열의 합

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 i in range(x+1, x+i+1):
print(i, end=" ")
break
else:
print(-1)

 

풀이법: 수학

수열의 시작점과 길이를 계산하는 것이 전부이다. 단 브루트 포스 형식으로 전체를 대입할 경우에는 시간 초과가 발생하기 때문에 수열의 시작점의 값이 (위의 코드에서는 변수 x) 정수이면서 0 이상인지를 파악해야 한다. 그리고 조건을 만족하는 수열이 있으면 수열을 출력하고 그렇지 않다면 -1을 출력하도록 세팅하였다. 

반응형