프로그래머스/Python
[프로그래머스] 숫자의 표현 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트
우당탕탕 개발자
2023. 7. 6. 13:23
728x90
반응형
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 문제 설명
2. 풀이과정
- 1부터 입력받은 수까지 자연수를 원소로 하는 배열을 생성한다. li = list(range(1, n + 1))
- 슬라이싱을 활용하여 연속된 자연수를 추출한다. 슬라이싱에 사용할 시작 위치와 종료 위치의 값을 반복문을 활용해 지정해 준다.
- 시작 위치는 처음부터 끝까지이고 for i in range(n + 1)
- 종료 위치는 시작 위치 다음부터 배열의 끝까지의 범위로 지정한다. for j in range(i + 1, n + 1)
- 만약 지정한 슬라이싱의 합이 입력받은 수이면 if (sum(li[i : j]) == n)
- 연속된 자연수들의 합이므로 경우의 수에 1을 더한다. answer += 1
- 만약 지정한 슬라이싱의 합이 입력받은 수보다 크면 반복을 종료한다. if (sum(li[i : j]) > n): break
반응형
3. 소스코드
def solution(n):
answer = 0
li = list(range(1, n + 1))
for i in range(n + 1):
for j in range(i + 1, n + 1):
if (sum(li[i : j]) == n):
answer += 1
if (sum(li[i : j]) > n):
break
return answer
728x90
반응형