본문 바로가기

알고리즘/백준

[BOJ] [Python] 1748번 : 수 이어 쓰기 1

최종 설계

 

예를 들어, 입력값이 1234라고 한다면 

1000부터 1234까지는 모두 4자리 수기 때문에, 

4자릿수 (1234  - 1000 + 1)개를 미리 처리했다.

 

그리고 나머지는 그 수가 무엇이든, 자릿수에 따라 9 * 1, 9 * 10, 9 * 100 ... 개로 예상을 벗어나지 않기 때문에, 

아래는 저렇게 처리했다.

 

+ 한 자릿수는 따로 처리 해줘야 한다. (한 자릿 수일 경우, 입력 값 그대로 출력하면 된다.)

 

 

num = int(input())

len_fir = (num - int('1' + ('0' * (len(str(num)) - 1))) + 1) * len(str(num))

if(len(str(num)) == 1):
    print(num)

else:
    num = str(num)[1:]
    len_aft = 0

    for n in range(1, int(len(num)+1)):
        len_aft += int('1' + ('0' * (n - 1))) * n

    len_fir += len_aft * 9

    print(len_fir)