반응형
[문제 출처]
https://www.acmicpc.net/problem/2018
2018번: 수들의 합 5
어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한
www.acmicpc.net
[소스 코드1 - 시간 초과]
생각나는대로 그냥 풀어봤더니 역시나 시간 초과가 나왔다.
import sys
input = sys.stdin.readline
n = int(input())
cnt = 0
for i in range(1,n+1):
sum = 0
for j in range(i,n+1):
sum += j
if sum == n:
cnt += 1
break
print(cnt)
[소스 코드2 - 메모리 초과]
import sys
input = sys.stdin.readline
n = int(input())
arr = [i for i in range(1, n+1)]
sum, end = 0, 0
cnt = 0
for i in range(n):
while end < n and sum < n:
sum += arr[end]
end += 1
if sum == n:
cnt += 1
sum -= arr[i]
print(cnt)
[소스 코드3 - 틀렸습니다]
리스트가 문제인 것 같아서 없애보았는데 이번엔 틀렸다.
리스트만 없앤다는게 잘못 건드린 것 같다.
import sys
input = sys.stdin.readline
n = int(input())
sum, end = 0, 1
cnt = 0
for i in range(1,n+1):
while end < n and sum < n:
sum += end
end += 1
if sum == n:
cnt += 1
sum -= i
print(cnt)
반응형
'알고리즘 > python' 카테고리의 다른 글
[python/파이썬] 백준 20162 간식 파티 (0) | 2022.07.27 |
---|---|
[python/파이썬] 백준 1316 그룹 단어 체커 (0) | 2022.07.26 |
[python/파이썬] 백준 2798 블랙잭 (0) | 2022.07.25 |
[python/파이썬] 백준 14467 소가 길을 건너간 이유 1 (0) | 2022.07.25 |
[python/파이썬] 백준 4097 수익 (0) | 2022.07.22 |