알고리즘/프로그래머스
프로그래머스 Lv2 숫자의 표현 (python)
개발하는 호랑이
2024. 2. 3. 16:16
숫자의 표현
풀이
for 문과 while문을 사용했다.
1. 우선 자기자신인 방법이 있으니 answer = 1로 등록
2. for 문으로 1, n//2 까지 확인 하기 n//2 + 1 이후로는 값을 더하게 되면 n을 넘어버리니까
3. while 문에서 sum_v == n이 되면 answer += 1 하고 break 후 다시 for문 돌기
4. for문 완료후 answr 반환
def solution(n):
# 자기자신인 방법이 있으니까
answer = 1
# 1~ n//2까지 돌아가며 확인
for i in range(1, n//2+1):
sum_v = i
j = i+1
while sum_v < n:
sum_v += j
if sum_v == n:
answer += 1
break
j += 1
return answer
다른 사람 풀이
아래는 등차수열을 이용한 방법으로 보인다.
역시 똑똑한 사람이 많다.
def expressions(num):
return len([i for i in range(1,num+1,2) if num % i is 0])