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을 출력하도록 세팅하였다.
반응형
'IT > Algorithm' 카테고리의 다른 글
[python] 백준 25306: 연속 XOR (0) | 2025.03.17 |
---|---|
[python] 백준 1904: 01타일 (0) | 2025.03.16 |
[python] 백준 1011: Fly me to the Alpha Centauri (0) | 2025.03.15 |
[python] 백준 1019 : 책 페이지 (0) | 2025.03.14 |
[c] 구조체를 정의하고, 데이터들을 입력받아 결과값을 산출하기 (0) | 2023.12.13 |