반응형
programmers.co.kr/learn/courses/30/lessons/12924
문제 설명
n이라는 숫자가 있을 때, 이 숫자를 연속된 수들의 합으로 나타낼 수 있는 가지 수를 구하는 문제이다.
예를 들어, n = 15이면
- 1 + 2 + 3 + 4 + 5 = 15
- 4 + 5 + 6 = 15
- 7 + 8 = 15
- 15 = 15
이렇게 나타낼 수 있으므로 n=15일 때의 정답은 4이다.
풀이 과정
일일이 확인해가며 해당 경우에 참인지 거짓인지를 판별해야 하는 문제이다.
일단, i = n인 경우에는 무조건 해당되므로 answer은 1부터 시작하며,
절반까지만 검사하면 된다.
예를 들어, n = 15일 경우 8이상부터는 어떤 수를 더하더라도 15를 넘기기 때문이다.
수들을 더해가며 n일 경우에만 count 를 하나씩 늘려주면 된다.
def solution(n):
answer = 1
for i in range(1, n // 2 + 1):
stack = []
for j in range(i, n + 1):
stack.append(j)
if sum(stack) >= n:
break
if sum(stack) == n:
answer += 1
return answer
전체 문제 & 코드는 위의 깃에 정리되어 있습니다.
팔로우 & 맞팔은 환영입니다 !
반응형
'Algorithm > BruteForce' 카테고리의 다른 글
[백준] 14889 스타트와 링크 (Python 파이썬) (0) | 2021.10.08 |
---|---|
[백준] 1436 영화감독 숌 (Python 파이썬) (0) | 2021.10.02 |
[프로그래머스] 메뉴 리뉴얼 (Python 파이썬) (0) | 2021.04.24 |
[백준] 2292 벌집 (Python 파이썬) (0) | 2021.04.12 |