๐ ๋ฌธ์
๐ฑ ์์ด๋์ด
"๊ฒ์ ๋จน๋ ๊ฒฝ์ฐ"์ "๊ฒ์ ๋จน์ง ์๋ ๊ฒฝ์ฐ"๋ฅผ ๊ตฌํ๊ณ ์ ํ์๊ฐ์ ๋ง๋ ๊ฒฝ์ฐ๋ฅผ ์ถ๋ ฅํ์.
๊ธฐ๋ณธ์ ์ธ BFS ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ง๋ง ๊ฒ์ ๋จน๋ ๊ฒฝ์ฐ or ๊ฒ์ ๋จน์ง ์๋ ๊ฒฝ์ฐ๋ฅผ ๋ถ๋ฆฌํด์ ํ์ด์ผ ํ๋ค.
๊ทธ๋ฌ๊ธฐ ์ํด์ BFS ์๊ณ ๋ฆฌ์ฆ์ ์คํํด์ ๊ฒ์ ๋จน์ ์ ์๋์ง์ ๋ํ ์ฌ๋ถ๋ฅผ ํ์ธํ๊ณ ๋จน์๋ค๋ฉด
๋จน์ ์์น์์ ๋ชฉํ๊ฐ ์๋ ์์น๊น์ง ๋ฒฝ์ ๋ถ์ ์ ์๊ธฐ ๋๋ฌธ์(์ฅ์ ๋ฌผ์ด ์๋ค) ๋งจํดํผ ๊ฑฐ๋ฆฌ ๋ก ์ต๋จ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํด ๋ํด์ฃผ๋ฉด ๋๋ค.
Way1, Way2 ๋ ๋์ฐฉํ ์ ์๋ ๊ฒฝ์ฐ๋ ์๊ธฐ ๋๋ฌธ์ Max ๊ฐ์ผ๋ก ์ค์ ํ ์งํํ๋ค
Way1 = ๊ฒ์ ๋จน์ง ์๋ ๊ฒฝ์ฐ -> ๊ธฐ๋ณธ BFS์ผ๋ก ๋ชฉ์ ์ง๊น์ง ์์์๊ฐ
Way2 = ๊ฒ์ ๋จน์ ๊ฒฝ์ฐ -> ๊ฒ์ ๋จน๊ธฐ๊น์ง ์์์๊ฐ + ๋งจํดํผ๊ฑฐ๋ฆฌ(ํ ์นธ ๋น ํ ์๊ฐ)
๊ฒ์ ๋จน๊ธฐ๋ง ํ๋ค๋ฉด ๋ฌด์กฐ๊ฑด ๋ชฉ์ ์ง์ ๋์ฐฉํ๊ธฐ ๋๋ฌธ์ ๊ฒ ํ๋ ์ฌ๋ถ๊ฐ ์ค์ํ๋ค
๐ฑ ์ฝ๋ ๋ฐ ํ์ด
๋งจํดํผ ๊ฑฐ๋ฆฌ ๊ณต์ = (x1 - x2) + (y1 - y2), ์ฅ์ ๋ฌผ์ด ์๋ค๋ฉด(๋ฌด์ ๊ฐ๋ฅํ๋ค๋ฉด) BFS๋ฅผ ๋ค์ ์คํํ ํ์ ์์ด ๊ณต์ ๋ง์ผ๋ก
์ต๋จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ ์ ์๋ค!
bfs() = BFS ์๊ณ ๋ฆฌ์ฆ, ๊ฒ ํ๋์ฌ๋ถ๋ฅผ booleanํ์ผ๋ก ๋ฐํํ๋ค.
์ฆ, ๊ฒ์ ๋จน์ง ๋ชปํ๋ค๋ฉด Way2๋ ๊ณ ๋ คํ ํ์๊ฐ ์๋ค. ํ์ง๋ง ๊ฒ์ ๋จน์๋ค๋ฉด ๊ฒ๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ + ๋ชฉ์ ์ง๊น์ง ๋งจํดํผ๊ฑฐ๋ฆฌ๋ฅผ
๊ตฌํ๋ฉด ๋๋ค.
๐ฑ ๋๋ ์
๋ค๋ฅธ ์ ์ ๊ฐ ์์ฑํ ์ ๋ต ์ฝ๋๋ฅผ ๋ดค๋๋ฐ ๋ค๋ค bfs ์๊ณ ๋ฆฌ์ฆ์ ๊ฒ ํ๋ ์ฌ๋ถ์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ์๋ํ๊ฒ ๊ตฌํํ๋ค
์ด๋ฐ ๋ฐฉ๋ฒ๋ ์๊ฐํ์ง๋ง ๋ณต์กํด์ง ์ ์์ ๊ฒ ๊ฐ์์ ๋๋ฆ๋๋ก ๋ ผ๋ฆฌ๋ฅผ ๋จ์ํ์์ผ ๋ณด์๋ค ใ ใ
๋ด๊ฐ ์ง์ ์๊ฐํด ๋ด์ ๊ทธ๋ฐ์ง ๋์๊ฒ ์ฝ๊ฒ ์๋ฟ์๋๋ฐ ๋ค๋ฅธ ์ฌ๋๋ค๋ ๊ณต๊ฐํ ์ง ๊ถ๊ธํ๋ค^^
'Algorithm > - Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๋ฐฑ์ค 1976 ์ฌํ ๊ฐ์ (JAVA) (4) | 2024.02.26 |
---|---|
[BOJ] ๋ฐฑ์ค 11657 ํ์๋จธ์ (JAVA) (0) | 2024.02.20 |
[BOJ] ๋ฐฑ์ค 2290 LCD Test (JAVA) (0) | 2024.02.05 |
[BOJ] ๋ฐฑ์ค 2096 ๋ด๋ ค๊ฐ๊ธฐ (JAVA) (1) | 2024.01.29 |
[BOJ] ๋ฐฑ์ค 15663 N๊ณผ M(9) (JAVA) (1) | 2024.01.29 |
๋๋ง์ ๊ฐ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค!
ํฌ์คํ ์ด ์ข์๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ํด์ฃผ์ธ์!