์ฐฝ์๋ ฅ(=์ต์ํ์ ์์ด๋์ด ๋ ์ฌ๋ฆผ)ํ๋จ๋ ฅ(=ํ์ฌ ์ํฉ์์ ๊ฐ์ฅ ์ข์๋ณด์ด๋๊ฒ์ ์ ํํด๋ ๋ฌธ์ ๋ฅผ ํ ์ ์๋ ๊ฒ์ ๋ณด์ฅํ๋๊ฐ) ๋ฅผ ์๊ตฌํ๋ค.๊ฑฐ์ค๋ฆ๋ ๋ฌธ์ ๊ฐ ๊ทธ๋ฆฌ๋๋ก ํด๊ฒฐ ๊ฐ๋ฅํ ์ด์ ๋๊ฐ์ง๊ณ ์๋ ๋์ ์ค์์ ํฐ ๋จ์ = ํญ์ ์์ ๋จ์์ ๋ฐฐ์.๊ทธ๋ฌ๋ฏ๋ก ์์ ๋จ์์ ๋์ ๋ค์
ํต์ฌ) ๋ฐฐ์ด์ ์์๋ฅผ N๋ฒ ๋ํ์ฌ ๊ฐ์ ํฐ ์ ๋ง๋ค๊ธฐํน์ ์์๋ k๋ฒ ์ด๊ณผํ์ฌ ๋ํด์ง ์ ์์์๋ก ๋ค๋ฅธ ์ธ๋ฑ์ค์ ์๊ฐ ๊ฐ์ ๋ = ์๋ก ๋ค๋ฅธ ๊ฒ์ผ๋ก ๊ฐ์ฃผk๋ M๋ณด๋ค ํญ์ ์๊ฑฐ๋ ๊ฐ๋ค๋ฐฐ์ด์ ํฌ๊ธฐ N, ์ซ์ ๋ํด์ง๋ ํ์ M, ์ ํ K์ผ๋ ์ ๋ฒ์น์ ๋ฐ๋ผ ๋ํด์ง ๊ฐ์ ์ถ๋ ฅ
๋จธ๋ฆฟ์์ ์๋ ์๊ณ ๋ฆฌ์ฆ์ ์์ค์ฝ๋๋ก ๋ฐ๊พธ๋ ๊ณผ์ 'ํ์ด๋ ๋ ์ฌ๋ฆฌ๊ธฐ ์ฝ์ง๋ง ์์ค์ฝ๋๋ก ์ฎ๊ธฐ๊ธฐ ๊น๋ค๋ก์ด ๋ฌธ์ ' ๋ฑ์ด ๊ตฌํ๋ฌธ์ ์ด๋ค๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฃผ์ ์์ด ๋ค ๊ณ์ฐํ๋ ํด๊ฒฐ๋ฐฉ๋ฒ๋ฌธ์ ์์ ์ ์ํ ์๊ณ ๋ฆฌ์ฆ์ ํ ๋จ๊ณ์ฉ ์ฐจ๋ก๋ก ์ง์ ์ํํด์ผํ๋ ๋ฌธ์ ํ์ด์ฌ๊ณผ ํจ๊ป๋ผ๋ฉด C/C++๋ณด๋ค๋
๋ญ๊ฐ BFS, DFS ๋ ๊ทธ๋ ๊ณ n \* m ํ์์ ์์ง์ด๋ ๊ฒฝ์ฐ๊ฐ ์ฝ๋๋ก ๊ตฌํํ์๋ ๊ฑฐ์ ํ์ด ์๋ ๊ฒ ๊ฐ๋ค. ์ ๋ ฅ์์)5R R R U D D์ถ๋ ฅ์์ )3 4๋์ถฉ ์ ๋ฆฌํ๋ฉด์ด๋ ๊ฒ ์์ง์์๋ ๋ฐ๋ํ ์ด๋์ ์์นํ๋์ง ์ถ๋ ฅํด์ผํ๋ค.๋ฐ๋ํ ๋ฒ์๋ฅผ ๋ฒ์ด๋์๋ ์๋๋ค์ฝ๋๊ฑฐ์ ์ด
๊ฒฐ๋ก ) ์บ๋ฆญํฐ๊ฐ ๋ฐฉ๋ฌธํ ์นธ์ ์ ์ถ๋ ฅ์์ง์ ๋ฉ๋ด์ผ 1) ํ์ฌ ์์น์์ ํ์ฌ ๋ฐฉํฅ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ๋ฐฉํฅ๋ถํฐ ์ฐจ๋ก๋๋ก ๊ฐ ๊ณณ ์ ํจ 2) ์บ๋ฆญํฐ์ ๋ฐ๋ก ์ผ์ชฝ์ ๊ฐ๋ณด์ง ์์ ์นธ์ด ์กด์ฌํ๋ฉด, ์ผ์ชฝ ๋ฐฉํฅ์ผ๋ก ํ์ ํ ๋ค์ ์ผ์ชฝ์ผ๋ก ํ ์นธ์ ์ ์ง. ์ผ์ชฝ ๋ฐฉํฅ์ ๊ฐ๋ณด์ง ์์ ์นธ์ด ์
๊ฒฐ๋ก ) ๋์ดํธ์ ์์น๊ฐ ์ฃผ์ด์ก์๋, ๋์ดํธ๊ฐ ์ด๋ํ ์ ์๋ ๊ฒฝ์ฐ์ ์๋?8\*8 ์ฒด์คํ์์ด๋์ ๋๊ฐ์ง ์ค ํ๋ 1) ์ํ 2์นธ -> ์์ง 1์นธ 2) ์์ง 2์นธ -> ์ํ 1์นธ๋ฒ์์์ ๋ฒ์ด๋๋์ง ์ฒดํฌํ๋๊ฒ ์ค์ํ๊ฒ ๊ตฐ์ค~ ๋ง์๋ค\~~
์ฒ์๋ถํฐ ๋๊น์ง ์ฐพ์๋๊น์ง ์์๋๋ก ์กฐํ๋น์ฐํ ์ต์ ์ ์๊ฐ๋ณต์ก๋๋ O(N)์กฐ๊ฑด : ๋ฐ์ดํฐ๋ ์ด๋ฏธ ์ ๋ ฌ๋์ด์์ด์ผํ๋ค. โก๏ธ ์ด์งํ์ํธ๋ฆฌ์์ ์ฐ๊ดํ์ : ์์์ , ๋์ , ์ค๊ฐ์ ์ฐพ์ผ๋ ค๋ ๋ฐ์ดํฐ์ ์ค๊ฐ์ ์์น์ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ๋น๊ตํด์ ์ํ๋ ๋ฐ์ดํฐ ์ฐพ๊ธฐ์๊ฐ๋ณต์ก๋ :
ํต์ฌ) ์๋์ด ์์ฒญํ ๋ถํ๋ฒํธ๊ฐ ๋ฆฌ์คํธ์ ์์ผ๋ฉด yes, ์์ผ๋ฉด noinput ex)๋ด๊ฐ ๊ฐ์ง๊ณ ์๋ ๊ฒN = 58,3,7,9,2์๋์ด ์ฐพ๋ ๊ฒM = 35,7,9input ์กฐ๊ฑด)์ ์ 1<=N<=1,000,000์ ์ 1<=M<=1,000,000๋ค๋์
ํต์ฌ) ์ ๋จ๊ธฐ์ ์ค์ ํ ์ ์๋ ๋์ด์ ์ต๋๊ฐ์ ๊ตฌํ์์ค ์ ์ด๋ ํฉ์ณ์ M๋งํผ์ ์ฐ๋ฆฐ ๋ก์ ์ป์ด์ผํ๋ค.์ฒซ์ค์ ๋ก์ ๊ฐฏ์ N๊ณผ ์์ฒญํ ๋ก์ ๊ธธ์ด M์ด ์ฃผ์ด์ง๋ค (1<=N<=1,000,000 1<=M<=2,000,000,000)๋์งธ์ค์ ๋ก์ ๊ฐ๋ณ
๋ค์ต์คํธ๋ผ์ฌ์ฉ : ํน์ ๋ ธ๋์์ ๋ค๋ฅธ ๋ชจ๋ ๋ ธ๋๋ก์ ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ตฌํจ์ ์ ์กฐ๊ฑด : weight๊ฐ ์์์ผ ์ ์์์๊ฐ๋ณต์ก๋ : ํ๋ก์ด๋์์ ์ฌ์ฉ : ์ ์ ์กฐ๊ฑด : ์๊ฐ๋ณต์ก๋ : ๋์์๋ฆฌ1\. ์ถ๋ฐ๋ ธ๋ ์ค์ 2\. ์ต๋จ๊ฑฐ๋ฆฌ ํ ์ด๋ธ ์ด๊ธฐํ3\. ๋ฐฉ๋ฌธํ์ง ์์ ๋ ธ๋ ์ค ์ต๋จ๊ฑฐ๋ฆฌ๊ฐ ๊ฐ์ฅ
ํ๋ก์ด๋์์ ์ฌ์ฉ : ๋ชจ๋ ์ง์ ์์ ๋ค๋ฅธ ๋ชจ๋ ์ง์ ๊น์ง์ ์ต๋จ๊ฒฝ๋ก ๋ชจ๋ ๊ตฌํ๋ ๊ฒฝ์ฐ์ ์ ์กฐ๊ฑด : ์๊ฐ๋ณต์ก๋ : O($$N^3$$)๊ตฌํ๊ฐ๋ : \|$$D{ab}=min(D{ab}, D{ak}+D{kb})$$= min(A์์ B๋ก๊ฐ๋ ์ต์๋น์ฉ, A์์ K๋ฅผ ๊ฑฐ์ณ B๋ก๊ฐ๋ ์ต์๋น
์ ํ์ : $$a{n+2}=f(a{n+1}, an) = a{n+1}+a_n$$์ค์ ๊ตฌํ๋ ๊ณผ์ ์ฝ๋์ด๋์ ์๊ฐ ๋ณต์ก๋ : $$O(2^N)$$๋์ผํ ํจ์๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ํธ์ถ๋๊ธฐ ๋๋ฌธ์ด๋ค!์์ ) fibo(6) ํธ์ถ์ \-> ๋ญ๋น. ๋นํจ์จ์ .์ฌ๊ทํจ์๋ฅผ ์ฌ์ฉํด์ ๋ง๋๋๊ฒ ๋์ด
1๋ก ๋ง๋ค๊ธฐ ์ด์ฝํ ์ฑ 217p ๋ฌธ์ ์๊ฐ์ ํ 1์ด ์ ๋ ฅ ์ ์ X (1<=X<=30,000) ์ถ๋ ฅ ์ฐ์ฐ์ ํ๋ ํ์์ ์ต์๊ฐ ๋ฌธ์ ์์ฝ ์ฃผ์ด์ง๋ ์ ์ X์๊ฒ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฐ์ฐ์ 4๊ฐ์ง X๊ฐ 5๋ก ๋๋์ด๋จ์ด์ง๋ฉด, 5๋ก ๋๋ X๊ฐ 3๋ก ๋๋์ด
์ ๋ ฌ ๋ฐ์ดํฐ๋ฅผ ํน์ ํ ๊ธฐ์ค์ ๋ฐ๋ผ์ ์์๋๋ก ๋์ดํ๋ ๊ฒ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํด๋๋ฉด ์ด์งํ์์ด ๊ฐ๋ฅํด์ง๋ค.๋ํ์ ์ผ๋ก์ ํ์ ๋ ฌ์ฝ์ ์ ๋ ฌํต์ ๋ ฌ๊ณ์์ ๋ ฌ์ ํ์ ๋ ฌ๊ฐ์ฅ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ํํด, ๋งจ ์์ ์๋ ๋ฐ์ดํฐ์ ๋ฐ๊พธ๊ณ ๊ทธ ๋ค์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ ํํด ์์์ ๋๋ฒ์งธ ๋ฐ์ดํฐ์ ๋ฐ๊พธ๋ ๊ณผ์ ๋ฐ๋ณต
์ ํ์๊ฐ : 1์ด ๋ฉ๋ชจ๋ฆฌ : 128MB์ ๋ ฅ์ฒซ์งธ์ค์ ์์ด์ ์ํด์๋ ์์ ๊ฐฏ์ N (1<=N<=500)๋์งธ์ค๋ถํฐ N+1๋ฒ์งธ ์ค๊น์ง N๊ฐ์ ์ ์ ๋ ฅ. (1<=์<=100,000)์ถ๋ ฅ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์์ด์ด ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๊ฒฐ๊ณผ๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํ์ฌ ์ถ
๊ทธ๋ํ ์ด๋ก ์ ์ฐธ๊ณ ํ์!๊ทธ๋ํ์์ ๊น์ ๋ถ๋ถ์ ์ฐ์ ์ ์ผ๋ก ํ์ํ๋ ์๊ณ ๋ฆฌ์ฆ1\. ํ์ ์์ ๋ ธ๋๋ฅผ ์คํ์ ์ฝ์ ํ๊ณ ๋ฐฉ๋ฌธ์ฒ๋ฆฌํ๋ค.2\. ์คํ ์ต์๋จ ๋ ธ๋์ ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋๊ฐ ์์ผ๋ฉด, ๊ทธ ์ธ์ ๋ ธ๋๋ฅผ ์คํ์ ๋ฃ๊ณ ๋ฐฉ๋ฌธ ์ฒ๋ฆฌ๋ฅผ ํ๋ค. ๋ฐฉ๋ฌธํ์ง ์์ ์ธ์ ๋ ธ๋๊ฐ ์์ผ
์ด์ฝํ 149p ์ ํ1์ด / 128MB์ ๋ ฅ์ผ์ํ ์ธ๋ก๊ธธ์ด N, M (1<=N, M<=1,000)2์ค~N+1์ค๊น์ง ์ผ์ํ ํํ ์ฃผ์ด์ง (0=๊ตฌ๋ฉ, 1=๊ทธ๋ ์ง ์์)์ถ๋ ฅํ๋ฒ์ ๋ง๋ค ์ ์๋ ์์ด์คํฌ๋ฆผ์ ๊ฐฏ์ ์ถ๋ ฅ์์N \* M ํฌ๊ธฐ์ ์ผ์ ํ์ด ์๋ค.๊ตฌ๋ฉ์ด ๋ซ๋ฆฐ
๊ท์ฐฎ์ง๋ง dictionary๋ก ๊ตฌํํ์ฌ ๋ ๋น ๋ฅด๊ฒ ๋๋ฆฌ๊ณ ์ถ์๋๋ฐ ์คํ๋ ค ๋ ๋๋ฆฌ๊ฒ ๋์๋ค.์ฌ์ฉ ์๊ณ ๋ฆฌ์ฆ \- ๋ : bfs๋ชจ๋ฒ : dfs์ฌ์ฉ ์๋ฃ๊ตฌ์กฐ \- grpah ์ ๋ณด๋ฅผ ๊ธฐ๋ก \- ๋ : dictionary ( ๋ ๋น ๋ฅผ์ค....)๋ชจ๋ฒ : 2์ฐจ์ list์๊ฐ