문제 링크 (Level 2)
https://school.programmers.co.kr/learn/courses/30/lessons/12924
나의 코드 (Python)
def solution(n):
answer = 1 # n
ran = 0
if n == 1:
return 1
if n % 2 == 0:
ran = n // 2
else:
ran = n // 2 + 1
for i in range(1, ran+1):
tmp = 0
for j in range(i, ran+1):
tmp += j
if tmp == n:
answer += 1
elif tmp > n:
break
return answer
이 문제는 연속하는 수가 주어진 조건과 같아야 하기 때문에 이중 for문을 사용했습니다.
1부터 n까지, 그리고 그다음 수부터 n까지 가는 식을 구현하기 위함입니다.
제한사항이 10000이기 때문에 속도 향상을 위해 짝수는 절반, 홀수는 절반+1까지만 돌게 하여 불필요한 연산을 줄였습니다.
'코딩공부 > 프로그래머스 (python)' 카테고리의 다른 글
[프로그래머스] 올바른 괄호 (Python) (0) | 2022.09.25 |
---|---|
[프로그래머스] JadenCase 문자열 만들기 (Python) (0) | 2022.09.25 |
[프로그래머스] 최솟값 만들기 (Python) (0) | 2022.09.16 |
[프로그래머스] 이진 변환 반복하기 (Python) (0) | 2022.09.13 |
[프로그래머스] 최댓값과 최솟값 (Python) (0) | 2022.09.07 |
댓글