출처 https://school.programmers.co.kr/learn/courses/30/lessons/12924
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 임의의 자연수 n에 대해서 연속된 자연수들의 합으로 표현되는 가짓수를 구하는 문제이다.
- ex) 10 = 1 + 2 + 3 + 4 = 10 : 2가지
- 2중 반복문으로 숫자를 더해가면서 합이 n이 되는 경우의 수를 구한다.
- n은 10,000 이하의 자연수이므로, 효율성 테스트를 충분히 고려해야 하겠다.
def solution(n):
cnt = 0
for i in range(1,n+1):
s = 0
for j in range(i,n+1):
s += j
if s == n:
cnt += 1
break
elif s>n:
break
return cnt
작성한 코드는 위와 같다.
- 바깥의 반복문은 시작하는 숫자를 의미하고 내부의 반복문은 몇 개의 숫자를 더할 건지를 의미한다.
- 자연수들의 합이 n보다 커지는 경우는 불필요한 계산이므로 break를 사용해주었다.
'study > Coding Test' 카테고리의 다른 글
[Python] 프로그래머스 Lv 2. 연속된 부분 수열의 합 (2) | 2023.05.17 |
---|---|
[Python] 프로그래머스 Lv 2. 올바른 괄호 (0) | 2023.05.14 |
[Python] 프로그래머스 Lv 2. 예상 대진표 (0) | 2023.05.11 |
[Python] 프로그래머스 Lv1. 완주하지 못한 선수 (0) | 2023.05.09 |
[python] 프로그래머스 Lv 1. 햄버거 만들기 (0) | 2023.05.08 |