ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

1748๋ฒˆ: ์ˆ˜ ์ด์–ด ์“ฐ๊ธฐ 1

์ฒซ์งธ ์ค„์— N(1≤N≤100,000,000)์ด ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ๋ธŒ๋ฃจํŠธ ํฌ์Šค๋กœ ํ’€๋ฉด ์‹œ๊ฐ„ ์ดˆ๊ณผ๋กœ ํ’€์ง€ ๋ชปํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํšจ์œจ์ ์œผ๋กœ ๊ตฌํ•  ์ˆ˜ ์žˆ์„๊นŒ? ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์‰ฝ๊ฒŒ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

  • ์ž๋ฆฟ์ˆ˜๋Š” ๋ช‡ ์ž๋ฆฟ์ˆ˜ ์ธ์ง€๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 1 ~ 9๋Š” ํ•œ ์ž๋ฆฟ์ˆ˜์ด๋‹ค.
  • 1 ~ 9 : 9๊ฐœ * ์ž๋ฆฟ์ˆ˜
  • 10 ~ 99 : 90๊ฐœ * ์ž๋ฆฟ์ˆ˜
  • 100 ~ 999 : 900๊ฐœ * ์ž๋ฆฟ์ˆ˜

์ฆ‰, 120์˜ ๊ฒฝ์šฐ 9 + 180 + ? ๊ฐ€ ๋œ๋‹ค. ๊ทธ๋Ÿผ 100๊ณผ 120์˜ ์‚ฌ์ด์˜ ์ˆ˜๋“ค๋„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. (120 - 100 + 1) * ์ž๋ฆฟ์ˆ˜๊ฐ€ ๋œ๋‹ค. 100๊ณผ 120 ์‚ฌ์ด์˜ ๊ฐ’๋“ค ๊ณ„์‚ฐ์—์„œ +1์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์€ 100๋„ ํฌํ•จ๋˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด์™€ ๊ฐ™์ด ์ฃผ์–ด์ง„ ์ˆ˜์˜ ์ž๋ฆฟ์ˆ˜์— ๋”ฐ๋ผ ํ•ฉ์‚ฐํ•ด๊ฐ€๋ฉด์„œ ๊ตฌํ•˜๊ฒŒ ๋˜๋ฉด 120์˜ ๊ฒฝ์šฐ 9 + 180 + 63์œผ๋กœ ์ •๋‹ต์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค.

์ฝ”๋“œ

if __name__ == "__main__":
    n = input()
    length = len(n) - 1
    sum_length = 0
    for i in range(length):
        sum_length += 9 * (10 ** i) * (i + 1)
    sum_length += ((int(n) - (10 ** length)) + 1) * (length + 1)
    print(sum_length)
728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€