728x90
๐ ๋ฐฑ์ค 1292 - ์ฝ๊ฒ ํธ๋ ๋ฌธ์
๋ฐฑ์ค 1292 - ์ฝ๊ฒ ํธ๋ ๋ฌธ์
โก๏ธ ๋์ ํ์ด
๋ฌธ์ ์ด๋ฆ์ ์ฝ๊ฒ ํธ๋ ๋ฌธ์ ์๋๋ฐ ๋๋ ์ด๋ ต๊ฒ ํผ ๋ฌธ์ ์๋ค. ๊ตฌ๊ฐ์ ์์๊ณผ ๋์ ๊ธฐ์ค์ผ๋ก ๊ตฌ๊ฐ ํฉ์ ๊ตฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ prefix_sum
์ ์ด์ฉํ๋ค. 1, 2, 2, 3, 3, 3, 4, 4, 4, 4 ...
์์ด์ ๋ง๋ค ๋ ๋ ์ฝ๊ฒ ๋ ์ฌ๋ฆด ์ ์์ด์ผ ํ๋๋ฐ str
ํ์ผ๋ก ์ด๋ ต๊ฒ ํผ ๊ฒ ๊ฐ๋ค.
๋์ ํ์ด
arr
์0
์ ๋ฃ์ ์ํ๋ก ์ ์ธํ๋ค. (index
๊ณ ๋ ค)a
,b
๋ฅผ ์ ๋ ฅ๋ฐ๋๋ฐb
๋index
๋ฅผ ๊ณ ๋ คํ ๊ฐ์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋ณต๋ฌธ์ ๋ฒ์๋ฅผ ๋ฐ์ผ๋ก ์ค์๋ค.cnt
๋1
์ฉ ์ฆ๊ฐํ๋ฉด์ ๋๊ฐ์ ๊ฐ์ด ํ๋์ฉ ์ฆ๊ฐํ๋ค.ํ์ฌ ํญ
๊ณผ์ด์ ํญ
์ ๋ํด๋์ ํฉ
์ ๊ณ์ฐํด์ค๋ค.arr[b] - arr[a-1]
์ผ๋ก๊ตฌ๊ฐ ํฉ
์ ๊ตฌํ๋ค.
์ ๋ตํ์ ์ ๋ง๊ณ ๋ค๋ฅธ์ฌ๋์ ์ฝ๋๋ฅผ ๋ดค๋๋ฐ ์ฝ๋๊ธธ์ด๊ฐ ๋ฐ์ผ๋ก ์ค ์ ๋๋ก ๊ฐ๋จํ ๋ฌธ์ ์๋์ง ๋ชฐ๋๋ค. ๐ ๐
๋ค๋ฅธ์ฌ๋์ ํ์ด
a
,b
์ ๋ฒ์๋1,000
๊น์ง์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ณต๋ฌธ์ ๋ฒ์๋46
๊น์ง๋ง ๊ตฌํด๋ ๋๋ค. (len(arr) = 1036
)i
๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ด์ค ๋ฐ๋ณต๋ฌธ์ ์ฌ์ฉํ๋๋ฐ ๋นarr
์i
๋ฅผ ์ถ๊ฐํ๋ค. ๊ฐ์ด1
๋ถํฐarr
์ ๋ค์ด๊ฐ๋ค. (j
๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ด ์๋!!)sum
ํจ์๋ฅผ ์ด์ฉํด์ ํ์๋ค.(๊ตฌ๊ฐํฉ์ ๊ตฌํ์ง ์๊ณ ๊ธฐ์กด arr์์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.)
๊ตฌ๊ฐ ํฉ
์ ๊ตฌํ ๋ ๋์ ํฉ
์ ๊ตฌํ์ง ์๊ณ ๋ sum + slicing
ํจ์๋ก ๊ตฌํ ์ ์๋ค๋ ๊ฒ์ ๋ฐฐ์ ๋ค.
# ๋์ ์ฝ๋
a, b = map(int, input().split())
arr = [0]
cnt = 1
for i in range(1, (b+1) // 2 + 1): # ๋ฒ์๋ฅผ ๋ฐ์ผ๋ก ๋๋ ์ ์๊ฐ ๋จ์ถ
for j in range(cnt):
arr.append(cnt)
cnt += 1
for i in range(1, b+1):
arr[i] += arr[i-1]
print(arr[b] - arr[a-1])
# ๋ค๋ฅธ ์ฌ๋์ ์ฝ๋
a,b = map(int,input().split())
arr = [0]
for i in range(46):
for j in range(i):
arr.append(i)
print(sum(arr[a:b+1]))
๋ฐ์ํ
'Algorithm > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 2292 - ๋ฒ์ง (0) | 2021.06.18 |
---|---|
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 6359 - ๋ง์ทจํ ์๋ฒ (0) | 2021.06.18 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 10820 - ๋ฌธ์์ด ๋ถ์ (0) | 2021.06.17 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 11723 - ์งํฉ (0) | 2021.06.16 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 5086 - ๋ฐฐ์์ ์ฝ์ (0) | 2021.06.16 |
๋๊ธ