-Code
n = int(input())
cnt, total = 0, 0
start, end = 0, 0
while n >= end >= start:
if total == n:
cnt += 1
end += 1
total = total - start + end
start += 1
elif total > n:
total -= start
start += 1
else:
end += 1
total += end
print(cnt)
처음에는 2중 for문으로 작성하여 풀었으나 메모리 오류와 시간 초과가 생겨서 while을 사용해야 한다는 것을 알게 되었습니다. 그래서 작성을 하다가 total값과 n이 같으면 cnt 증가까지만 적어서 입출력이 틀려졌고 total 부분에 start를 빼고 end를 더해줌으로써 해결하는 것을 찾게 되어 해결하였습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬] 6159번 코스튬 파티 (0) | 2022.05.10 |
---|---|
[백준/파이썬] 1940번 주몽 (0) | 2022.05.10 |
[백준/파이썬] 22862번 가장 긴 짝수 연속한 부분 수열 (large) (0) | 2022.05.10 |
[백준/파이썬] 18868번 멀티버스 Ⅰ (0) | 2022.05.09 |
[백준/파이썬] 18512번 점프 점프 (0) | 2022.05.09 |