๋ฐฑ์ค€/Python

[Python] ๋ฐฑ์ค€ 1748๋ฒˆ

๋‹ค๋ธ”๐Ÿ’ 2022. 7. 4. 02:25

1748๋ฒˆ. ์ˆ˜ ์ด์–ด์“ฐ๊ธฐ 1 (silver 4)

1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ์ˆ˜๋ฅผ ์ด์–ด์„œ ์“ฐ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒˆ๋กœ์šด ํ•˜๋‚˜์˜ ์ˆ˜๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

1234567891011121314151617181920212223...

์ด๋ ‡๊ฒŒ ๋งŒ๋“ค์–ด์ง„ ์ƒˆ๋กœ์šด ์ˆ˜๋Š” ๋ช‡ ์ž๋ฆฌ ์ˆ˜์ผ๊นŒ? ์ด ์ˆ˜์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

 

์ž…๋ ฅ

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

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ƒˆ๋กœ์šด ์ˆ˜์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

์˜ˆ์ œ ์ž…๋ ฅ1

5

 

์˜ˆ์ œ ์ถœ๋ ฅ1

5

์˜ˆ์ œ ์ž…๋ ฅ2

15

์˜ˆ์ œ ์ถœ๋ ฅ2

21

์˜ˆ์ œ ์ž…๋ ฅ3

120

์˜ˆ์ œ ์ถœ๋ ฅ3

252

 

 

์ฒ˜์Œ์—๋Š” n๊นŒ์ง€์˜ ์ˆ˜๋ฅผ ๋ฐฐ์—ด์— strํ˜•ํƒœ๋กœ ์ €์žฅํ•œ ๋‹ค์Œ len์„ ์‚ฌ์šฉํ•ด์„œ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋”ํ•˜๋ฉด ๋ ๊นŒ ํ–ˆ๋Š”๋ฐ, ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์™€์„œ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ด์„œ ํ’€์–ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

 

๊ทœ์น™์„ ์ฐพ์•„๋ณด๋ฉด,

1 ~ 9 -> ์ž๋ฆฟ์ˆ˜ ๊ธธ์ด : 1 -> 9๊ฐœ

10 ~ 99 -> ์ž๋ฆฟ์ˆ˜ ๊ธธ์ด : 2 -> 180๊ฐœ

100 ~ 999 -> ์ž๋ฆฟ์ˆ˜ ๊ธธ์ด : 3 -> 2700๊ฐœ

 

์ด๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ

์ž…๋ ฅ๋ฐ›์€ ์ˆซ์ž(n)์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ str ์ž๋ฃŒํ˜•๊ณผ len์„ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ•˜๊ณ 

for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ 1๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ์ˆ˜๋ฅผ 1์”ฉ ์ฆ๊ฐ€ํ•ด์„œ cnt์— ๋”ํ•˜๊ณ , 10๋ถ€ํ„ฐ 99๊นŒ์ง€์˜ ์ˆ˜๋ฅผ 2์”ฉ ์ฆ๊ฐ€์‹œ์ผœ์„œ cnt์— ๋”ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์ด ๊ณ„์† ๋”ํ•˜๋‹ค๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ for๋ฌธ์„ ๋น ์ ธ๋‚˜๊ฐ”์„ ๋•Œ๋„ ๋”ํ•ด์•ผ ํ•˜๋ฏ€๋กœ res์— ์ตœ์ข… ๊ฒฐ๊ณผ๋ฅผ ๋”ํ•ด์ฃผ๊ณ  ์ด๋ฅผ ์ถœ๋ ฅํ•ด์ฃผ์—ˆ๋‹ค.

n = int(input())
num = []
length = len(str(n))
cnt = 0

for i in range(length):
    cnt += 9 * (10**i) * (i+1)  # ํ•ด๋‹น ์ž๋ฆฟ์ˆ˜๋ฅผ ๊ฐ€์ง„ ๊ฐœ์ˆ˜ ๊ตฌํ•จ 

res = cnt + ((n - 10 ** length) + 1) * length   # ์ž๋ฆฟ์ˆ˜ ๊ธธ์ด
print(res)

'๋ฐฑ์ค€ > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Python] ๋ฐฑ์ค€ 1427๋ฒˆ  (0) 2022.07.04
[Python] ๋ฐฑ์ค€ 11866๋ฒˆ  (0) 2022.07.04
[Python] ๋ฐฑ์ค€ 1978๋ฒˆ  (0) 2022.06.25
[Python] ๋ฐฑ์ค€ 1764๋ฒˆ  (0) 2022.06.22
[Python] ๋ฐฑ์ค€ 11650๋ฒˆ  (0) 2022.05.31