[백준] 2018번 수들의 합 5

거북이·2023년 1월 7일
0

백준[실버5]

목록 보기
64/114
post-thumbnail

💡문제접근

투 포인터와 조건문을 적절히 활용하면 문제를 해결할 수 있다.
①. 만약 N보다 작다면 포인터의 끝 값을 1만큼 증가한다.
②. 만약 값이 N이라면 포인터의 끝 값을 1만큼 증가시키고 개수를 증가시켜준다.
③. 만약 값이 N보다 크다면 포인터의 시작값을 1만큼 증가한다.

💡코드(메모리 : 30616KB, 시간 : 4384ms)

N = int(input())

p1 = p2 = 1
result = 1
cnt = 0
while p2 != N:
    if result < N:
        p2 += 1
        result += p2
    elif result > N:
        result -= p1
        p1 += 1
    else:
        cnt += 1
        p2 += 1
        result += p2
print(cnt+1)

💡소요시간 : 9m

0개의 댓글