PS/Blind

[Beakjoon] 1024-수열의 합

재문OwO 2022. 10. 31. 13:30

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

1024번: 수열의 합

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

www.acmicpc.net

나의 풀이

이런식으로 접근을 해보았다.

num, num2 = map(int, input().split())

result = []

for j in range(num2,101):
    if j % 2 == 0:
        if num % j == j/2 and num/j + 0.5 - (j//2) >= 0:
            for k in range (0, j):
                result.append(int(num/j + 0.5 - (j//2) + k))
            break
    else:
        if num % j == 0 and num/j-(j//2) >= 0:
            for k in range (0, j):
                result.append(int(num/j-(j//2) + k))
            break
if len(result) == 0:
    result.append(-1)
        
print(*result)

메모리 시간은 각각 이렇게 나왔는데 더 단축 시킨 다른 풀이를 보기로 했다

3084076

다른 풀이

대게 이런식으로 미리 나누는 수열의 합들을 뺀다음에 나눠서 0이 되면 나누는 수의 갯수가 홀수 짝수 나눌 필요가 없게 되는것을 배웠다
https://www.acmicpc.net/source/12598433

로그인

www.acmicpc.net

다른 분의 코드라 직접 올리지는 않고 링크로 남겨 두겠다.
저분은 메모리와 시간이 이런식으로 찍히는데 표본이 적어 큰 차이인지는 잘 모르겠네

2905656