Lv2. 숫자의 표현

Hello·2022년 8월 1일

코딩테스트 연습 > 숫자의 표현

1. 풀이 설명

  1. answer = 1 로 초기화 설정한다. (n은 항상 n으로 표현할 수 있다.)

  2. 1부터 n-1 까지 for문을 돌고, 안쪽 for문에서 i+1 부터 n-1 까지 for문을 돌면서 연속한 숫자의 합을 구한다.

  3. 합이 n 이면 answer += 1, 합이 n 초과면 안쪽 for문을 break 한다.

2. 나의 풀이

python

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

3. 배운점

python

  1. 10,000 이하 n의 2중 for문 (1억) 에 시간초과가 떴었다.
    안쪽 for문에 불필요한 연산을 막고자 sum > n 일 때 break 하도록 한 후에 전체 테스트케이스 성공이 되었다.
  • 효율성을 개선할 수 있는 부분을 꼼꼼히 챙기자.
profile
안녕하세요 :)

0개의 댓글