์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- webpack
- Porject
- https://youtube.com/playlist?list=PLuHgQVnccGMA5836CvWfieEQy0T0ov6Jh&si=FTaYv8m21EhO-A2K
- ๋๊ธฐ
- await
- promise
- js
- Project
- ๊ฒ์
- sql
- async
- mysql
- JS #ํ๋ก์ ํธ
- db
- callback
- https://m.blog.naver.com/tt2t2am1118/221010125300
- ๋น๋๊ธฐ
- ์ฐธ๊ณ ๋ธ๋ก๊ทธ
- json
- Import
- execCommand
- object
- ajax
- slow and steady
- setTimeout()
- addEventListener
- ํผํ
- eport
- prj
- database
- Today
- Total
C-log
๐ฆ โจCell Algorithm : ๊ตฌ๊ฐ์ ํฉ ๋ณธ๋ฌธ
๊ตฌ๊ฐ ํฉ์ ํฉ ๋ฐฐ์ด์ ์ด์ฉํ์ฌ ์๊ฐ ๋ณต์ก๋๋ฅผ ๋ ์ค์ด๊ธฐ ์ํด ์ฌ์ฉํ๋ ํน์ํ ๋ชฉ์ ์ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
- ๊ตฌ๊ฐ ํฉ์ ํต์ฌ
- ํฉ ๋ฐฐ์ด์ ๊ธฐ์กด์ ๋ฐฐ์ด์ ์ ์ฒ๋ฆฌ(๊ฐ๊ณต)ํ ๋ฐฐ์ด์ด๋ผ ์๊ฐํ๋ฉด ๋๋ค.
- ex) [1, 2, 3, 4, 5] - (ํฉ ๋ฐฐ์ด) -> [1, 3, 6, 10, 15]
- ex) [1, 2, 3, 4, 5] - (๊ตฌ๊ฐ์ ํฉ/2~4๊น์ง) -> 3+4+5 = 12
- ์๊ฐ ๋ณต์ก๋๋ O(N)์ด๋ค.
- ํฉ ๋ฐฐ์ด๊ณผ ๊ตฌ๊ฐ ํฉ ๊ณต์์ ์ ์ฌ์ ์์ ํ์ฉํ๋ฉด ์ฝ๋ฉ ํ ์คํธ์์ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ค์ด๋ ๋ฐ ๋ง์ ๋์์ด ๋ ๊ฒ์ด๋ค.
- ๊ผญ ์๋ฆฌ๋ฅผ ์ดํดํด์ผํ๋ค.
- ํฉ ๋ฐฐ์ด์ ๊ธฐ์กด์ ๋ฐฐ์ด์ ์ ์ฒ๋ฆฌ(๊ฐ๊ณต)ํ ๋ฐฐ์ด์ด๋ผ ์๊ฐํ๋ฉด ๋๋ค.
* ๋์ ์ ํฉ
๊ตฌ๊ฐ์ ํฉ๊ด๋ จ ๋ฌธ์ ๋ค์ ์ค๋ฒ 3~1์ ๋์ด๋ค. ๋ฐ๋ผ์ ๋์ ์ ํฉ ์์๋ฅผ ๋ด์ผ ์กฐ๊ธ ๋ ์ดํด๊ฐ ๋ ๊ฒ์ด๋ค. O(N)์ธ ๋์ ์ ํฉ์ ํ๊ธฐ ์ด์ ์ ์๋๋ O(N^2)์ ์๊ฐ ๋ณต์ก๋์ธ ์ฝ๋๋ฅผ ๋จผ์ ์ดํด ๋ณด๊ฒ ๋ค.
0
0 1
0 1 2
0 1 2 3
0 1 2 3 4
0 1 2 3 4 5
0 1 2 3 4 5 6
[1, 9, 16, 20, 23, 28, 34]
์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด ์ด์ค for๋ฌธ์ผ๋ก ๋์ด ์๊ณ prefix_sum๋ฐฐ์ด ๋ณ์๋ ๋์ ๋๋ ๋ฐฐ์ด์ ๋ด์๋ด๋ ๋ณ์์ด๋ค. ์ด์ O(N)์ผ๋ก ๋์ด ์๋ ์ฝ๋๋ฅผ ์ดํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
0 [0, 1, 0, 0, 0, 0, 0, 0]
1 [0, 1, 9, 0, 0, 0, 0, 0]
2 [0, 1, 9, 16, 0, 0, 0, 0]
3 [0, 1, 9, 16, 20, 0, 0, 0]
4 [0, 1, 9, 16, 20, 23, 0, 0]
5 [0, 1, 9, 16, 20, 23, 28, 0]
6 [0, 1, 9, 16, 20, 23, 28, 34]
[0, 1, 9, 16, 20, 23, 28, 34]
preifx_sum ๋ฐฐ์ด ๋ณ์์ ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ +1์ ํด๋์ ์ํ์์ index 0์๋ฆฌ ๋ค์์ ๋ถํฐ ๋์ ์ ๋ฐฐ์ด์ ์คํํ๋ค. ์ด๋ฌํ ๊ฐ๋ ์ ์ ์๊ฐํ๋ฉด์ ๊ตฌ๊ฐ์ ํฉ์ ๋ณด๋ฉด ์์ํ ๊ฒ์ด๋ค.
* ๊ตฌ๊ฐ์ ํฉ
๊ตฌ๊ฐ์ ํฉ์ ์ดํดํ๊ธฐ ์ํด์ ๊ฐ๋จํ ์์๋ก ์ค๋ช ์ ํด๋ณด๊ฒ ๋ค. ๋ฐฐ์ด์ด [1,2,3,4,5]๊ฐ ์๋ค. ์ฌ๊ธฐ์ ๊ตฌ๊ฐ์ด 3์ด๋ผ๋ฉด 3๊ตฌ๊ฐ ๋งํผ์ ๊ฐ์ ํ์ฉํ๋ฉด ๋๋ ๊ฒ์ด๋ค. ์ฆ, ๊ตฌ๊ฐ์ ํฉ์ ๊ตฌํ๋ ๊ตฌ๊ฐ์ด 3์ด๋ฉด ๋จผ์ 1,2,3๊น์ง์ 3๊ตฌ๊ฐ์ ํฉ์ ๊ตฌํ๋ฉด ๋๋ค. ๋ฐ๋ผ์ 1+2+3์ธ 6์ด ๋์ค๋ ๊ฒ์ด๋ค. ์ดํ์ 2,3,4์ ๊ตฌ๊ฐ์ ํฉ์ ๊ตฌํ๋ค๋ฉด ๋จ์ํ ์ฐ๋ฆฌ ์ฌ๋์ ๋จธ๋ฆฌ๋ก๋ 2,3,4๋ฅผ ๋ํ๋ฉด ๋๊ฒ ์ง๋ง ์ปดํจํฐ ๊ธฐ์ค์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ ์ผ๋ก 2,3,4๋ผ๋ ๊ณต๊ฐ์ ๋ ๋ค์ ๋ง๋ค๊ธฐ ๋ณด๋ค 1+2+3์์ 4๋ฅผ ๋ํ๊ณ ๊ธฐ์กด์ ์๋ 1์ ๋นผ๋ฉด ๋๋ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ 1+2+3+4-1์ ๊ณผ์ ์ ๊ฑฐ์น๋ฉด ๋๋ ๊ฒ์ด๋ค. ์ด๋ฅผ ์ฝ๋๋ฅผ ํตํด์ ์ดํด๋ณด๋ฉด ์๋์ ๊ฐ๋ค.
index 1์์๋ถํฐ 5๊น์ง์ ๊ตฌ๊ฐ์ ํฉ์ ์ถ๋ ฅํ๋ฉด ๋๋ค.
[0, 1, 0, 0, 0, 0, 0, 0]
1 + 8
[0, 1, 9, 0, 0, 0, 0, 0]
9 + 7
[0, 1, 9, 16, 0, 0, 0, 0]
16 + 4
[0, 1, 9, 16, 20, 0, 0, 0]
20 + 3
[0, 1, 9, 16, 20, 23, 0, 0]
23 + 5
[0, 1, 9, 16, 20, 23, 28, 0]
28 + 6
[0, 1, 9, 16, 20, 23, 28, 34]
23
์ ๋นผ๊ธฐ๋ฅผ ํด์ผํ๋ ์ง ๋ ๋ช
ํํ ์ฆ๋ช
์ด ํ์ํ๋ค.
๊ฐ์ ์ด๋ฏธ์ง ์ฒจ๋ถ
[์๊ณ ๋ฆฌ์ฆ ์ด๋ก ] ๊ตฌ๊ฐํฉ, ๋์ ํฉ(prefix sum)
์ด๋ก 1์ฐจ์ ๋ฐฐ์ด ๋์ ํฉ ๋์ ํฉ๋ถํฐ ๋จผ์ ์ค๋ช ํ๋ฉด 0๋ฒ์งธ ์ธ๋ฑ์ค ๋ถํฐ N ๋ฒ์งธ ์ธ๋ฑ์ค๊น์ง ํ์ํ๋ฉด์ ์ธ๋ฑ์ค i์ผ๋ 0๋ฒ์งธ ์ธ๋ฑ์ค ๋ถํฐ 0๋ฒ์งธ ์ธ๋ฑ์คํฉ์ ๋งํ๋ค. Python array = [1, 8, 7, 4, 3, 5, 6] n = len
jih3508.tistory.com
๋์ ์ ํฉ๊ณผ ๊ตฌ๊ฐ์ ํฉ ์ฐจ์ด๋ ๋ฌด์์ธ๊ฐ.
๊ฒฐ๊ณผ์ ์ผ๋ก ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด ๋์ ๋ช ํํ ์ฐจ์ด๋ ๋ฌด์์ผ๊น?
๋ง์ฝ ๊ณ์ํด์ ๋ฐฐ์ด์ ๊ฐ์ด ๋ณํ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผํ ๊น?
์ด๋ด๋๋ ์ธ๊ทธ๋จผํธ ํธ๋ฆฌ/์ธ๋ฑ์ค ํธ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ผํ๋ค.
์ค์ ๋ฌธ์ : [BOJ] 11660
* ์๊ฐ ๋ณต์ก๋๋ฅผ ์ด๋ป๊ฒ ์ค์ผ ์ ์๋์ง ๊ณ ๋ฏผ ํ ๊ฒ.
๋๋จธ์ง ์ฐ์ฐ์ ํ๊ณ ๊ฐ๋ค์ ๋ํ๊ณ ๋ค์ 3์ ๋๋๋ ๊ฒ๊ณผ ํด๋น ๋ฒ์์ ๊ฐ์ ๋ํ๊ณ 3์ ๋๋๋ ๊ฒฐ๊ณผ๋ ๊ฐ๋ค๋ ๊ฒ์ด๋ค.
'๐ง Algorithm > โกver.0' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฆ Cell Algorithm : Tree (0) | 2024.06.17 |
---|---|
๐ฆ Cell Algorithm : ์คํ๊ณผ ํ (0) | 2024.02.18 |
๐ฆ Cell Algorithm : ๋ฐฐ์ด๊ณผ ๋ฆฌ์คํธ (0) | 2024.02.06 |
Cell Algorithm : ๋๋ฒ๊น (0) | 2024.02.06 |
Cell Algorithm : ์๊ฐ ๋ณต์ก๋ (0) | 2024.02.06 |