본문 바로가기
코딩 테스트/do it! 알고리즘 코딩테스트

006 수들의 합 5

by ornni 2024. 4. 8.
728x90
반응형

첫번째 코드

 

처음부터 범위를 지정해가면서 해당 범위의 값을 더해서 맞으면 count에 1을 더하는 형식으로!

 

import sys
input = sys.stdin.readline

n = int(input())
count = 0

n_list = list(range(1, n+1))
for i in range(n+1):
    for j in range(i):
        if sum(n_list[j:i]) == n:
            count += 1

print(count)

 

메모리 초과?


두번째 코드

 

책을 반영하여! 투포인트?

start, end의 투포인트를 통해 sum이라는 변수의 값만 바뀌고 나머지 값은 고려하지 않아버리는 것이다.

 

import sys
input = sys.stdin.readline

n = int(input())

count = 1
start = 1
end = 1
sum = 1

while end != n:
    if sum == n:
        count += 1
        end += 1
        sum += end
    elif sum > n:
        sum -= start
        start += 1
    else:
        end += 1
        sum += end

print(count)

 

통과!


링크

https://github.com/ornni/programmers/tree/main/%EB%B0%B1%EC%A4%80/Silver/2018.%E2%80%85%EC%88%98%EB%93%A4%EC%9D%98%E2%80%85%ED%95%A9%E2%80%855

 

programmers/백준/Silver/2018. 수들의 합 5 at main · ornni/programmers

repository for recording Programmers Algorithm problem solving - ornni/programmers

github.com

 

반응형

'코딩 테스트 > do it! 알고리즘 코딩테스트' 카테고리의 다른 글

008 좋아  (2) 2024.04.11
007 주몽  (0) 2024.04.11
005 나머지 합  (0) 2024.04.08
003 구간 합 구하기 4  (0) 2024.04.04
004 구간 합 구하기 5  (0) 2024.04.04