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 |