시냅스

백준 boj 1748 - 수 이어 쓰기 1 (파이썬, python) 본문

알고리즘

백준 boj 1748 - 수 이어 쓰기 1 (파이썬, python)

ted k 2022. 2. 11. 14:37

https://www.acmicpc.net/problem/1748

 

1748번: 수 이어 쓰기 1

첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다.

www.acmicpc.net

 

이어서 쓰인 수의 length 값을 구하는 문제였다.

물론, 시간초과를 한 번 맛본 후 반복문을 쓰지 말아야겠다 하고 생각했던 풀이법은

한자리 수인, 1 ~ 9 의 총 합은 9

두자리 수 까지인, 1 ~ 99 의 총 합은 189

세자리 수 까지인, 1 ~ 999 의 총 합은 2889

로 규칙성을 찾아 내었다.

 

이후에는 각 자리수의 총합에서 입력받은 수 까지의 차이를 빼 결과값을 나타내었다.

 

code

 

n = input()
every_nineth = str(len(n) - 1) + ('8' * (len(n) - 1)) + '9' # 9 189 2889...
how_many_nine = '9' * len(n) # 99 999 9999...
print(int(every_nineth) - (int(how_many_nine) - int(n)) * len(n))
Comments