[5/31] 숫자의 표현

이경준·2021년 5월 31일
0

코테

목록 보기
26/140
post-custom-banner

문제

내 코드

def solution(n):
    cnt = 0
    for i in range(1, n+1):

        sum = 0
        for j in range(i, n+1):
            sum = sum + j
            if (sum >= n):
                break
        if (sum == n):
            cnt += 1
    
    return cnt

풀이

  1. for문을 1부터 n까지 돌린다.
  2. for문을 이용하여, sum이 n 이상이 될 때까지 j를 더한다.
  3. sum과 n이 같으면 cnt를 1씩 늘려준다.
  4. cnt 반환

효율적인 코드

def solution(n):
    cnt = 0
    for i in range(1, n+1):

        sum = 0
        while (sum < n):
            sum = sum + i
            i = i + 1
        
        if (sum == n):
            cnt += 1
    
    return cnt

피드백

  • 원리는 똑같지만, for문과 if문을 while문 하나로 줄일 수 있다.
profile
The Show Must Go On
post-custom-banner

0개의 댓글