๐ Problem Solving
11
๋ค์ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ฉฐ ๋ฐฐ์ด ๊ฐ๋
๊ณผ ์ ๊ทผ ๋ฐฉ์์ ๊ณต์ ํฉ๋๋ค.
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ์ถ ๋ด์ญ๋ฌธ์ ๋งํฌ๋ฌธ์ ์ค๋ช
์คํธ๋ฆฌ๋ฐ ์ฌ์ดํธ์์ ์ฅ๋ฅด ๋ณ๋ก ๊ฐ์ฅ ๋ง์ด ์ฌ์๋ ๋
ธ๋๋ฅผ ๋ ๊ฐ์ฉ ๋ชจ์ ๋ฒ ์คํธ ์จ๋ฒ์ ์ถ์ํ๋ ค ํฉ๋๋ค. ๋
ธ๋๋ ๊ณ ์ ๋ฒํธ๋ก ๊ตฌ๋ถํ๋ฉฐ, ๋
ธ๋๋ฅผ ์๋กํ๋ ๊ธฐ์ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.์ํ ๋
ธ๋๊ฐ ๋ง์ด ์ฌ์๋ ์ฅ๋ฅด๋ฅผ ๋จผ์ ์๋กํฉ๋๋ค.์ฅ๋ฅด ๋ด์์ ๋ง์ด ์ฌ์๋ ๋
ธ๋๋ฅผ ๋จผ์ ์๋กํฉ๋๋ค.์ฅ๋ฅด ๋ด์์ ์ฌ์ ํ์๊ฐ ๊ฐ์ ๋
ธ๋ ์ค์์๋ ๊ณ ์ ๋ฒํธ๊ฐ ๋ฎ์ ๋
ธ๋๋ฅผ ๋จผ
[ํ๋ก๊ทธ๋๋จธ์ค] ํผ๋ก๋๋ฌธ์ ๋งํฌ๋ฌธ์ ์ค๋ช
XX๊ฒ์์๋ ํผ๋ก๋ ์์คํ
(0 ์ด์์ ์ ์๋ก ํํํฉ๋๋ค)์ด ์์ผ๋ฉฐ, ์ผ์ ํผ๋ก๋๋ฅผ ์ฌ์ฉํด์ ๋์ ์ ํํํ ์ ์์ต๋๋ค. ์ด๋, ๊ฐ ๋์ ๋ง๋ค ํํ์ ์์ํ๊ธฐ ์ํด ํ์ํ "์ต์ ํ์ ํผ๋ก๋"์ ๋์ ํํ์ ๋ง์ณค์ ๋ ์๋ชจ๋๋ "์๋ชจ ํผ๋ก๋"๊ฐ ์์ต๋๋ค. "์ต์ ํ์ ํผ๋ก๋"๋ ํด๋น ๋์ ์ ํํํ๊ธฐ ์ํด ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ ์ต์ํ์ ํผ๋ก๋๋ฅผ
[ํ๋ก๊ทธ๋๋จธ์ค] ์นดํซ๋ฌธ์ ๋งํฌ๋ฌธ์ ์ค๋ช
Leo๋ ์นดํซ์ ์ฌ๋ฌ ๊ฐ๋ค๊ฐ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ค์์๋ ๋
ธ๋์์ผ๋ก ์น ํด์ ธ ์๊ณ ํ
๋๋ฆฌ 1์ค์ ๊ฐ์์ผ๋ก ์น ํด์ ธ ์๋ ๊ฒฉ์ ๋ชจ์ ์นดํซ์ ๋ดค์ต๋๋ค.Leo๋ ์ง์ผ๋ก ๋์์์ ์๊น ๋ณธ ์นดํซ์ ๋
ธ๋์๊ณผ ๊ฐ์์ผ๋ก ์์น ๋ ๊ฒฉ์์ ๊ฐ์๋ ๊ธฐ์ตํ์ง๋ง, ์ ์ฒด ์นดํซ์ ํฌ๊ธฐ๋ ๊ธฐ์ตํ์ง ๋ชปํ์ต๋๋ค.Leo๊ฐ ๋ณธ ์นดํซ์์ ๊ฐ์ ๊ฒฉ์์ ์ brown, ๋
ธ๋์ ๊ฒฉ์์ ์
[๋ฐฑ์ค] ๋ฌํฝ์ด๋ฌธ์ ๋งํฌ๋ฌธ์ ํ์์ธ ์์ฐ์ N์ด ์ฃผ์ด์ง๋ฉด, ๋ค์๊ณผ ๊ฐ์ด 1๋ถํฐ N2๊น์ง์ ์์ฐ์๋ฅผ ๋ฌํฝ์ด ๋ชจ์์ผ๋ก NรN์ ํ์ ์ฑ์ธ ์ ์๋ค.9 2 3
8 1 4
7 6 525 10 11 12 13
24 9 2 3 14
23 8 1 4 15
22 7 6 5 16
21 20 19 18 17N์ด ์ฃผ์ด์ก์ ๋, ์ด๋ฌํ ํ๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋ํ
[๋ฐฑ์ค] ๊ฒฝ๋น์๋ฌธ์ ๋งํฌ๋ฌธ์ ๋๊ทผ์ด๋ ๋ฌด์ธ ๊ฒฝ๋น ํ์ฌ ๊ฒฝ๋น์์ผ๋ก ํญ์ ๋๊ธฐํ๊ณ ์๋ค๊ฐ ํธ์ถ์ด ๋ค์ด์ค๋ฉด ๊ฒฝ๋น์ฐจ๋ฅผ ๋ชฐ๊ณ ๊ทธ ๊ณณ์ผ๋ก ๋ฌ๋ ค๊ฐ์ผ ํ๋ค. ๋๊ทผ์ด๊ฐ ๋ด๋นํ๊ณ ์๋ ๊ณณ์ ์ง์ฌ๊ฐํ ๋ชจ์์ ๋ธ๋ก์ผ๋ก ๋ธ๋ก ์ค๊ฐ์ ๊ฐ๋ก์ง๋ฌ ์ฐจ๊ฐ ํต๊ณผํ ๋งํ ๊ธธ์ด ์๋ค. ์ด ๋ธ๋ก ๊ฒฝ๊ณ์ ๋ฌด์ธ ๊ฒฝ๋น๋ฅผ ์๋ขฐํ ์์ ๋ค์ด ์๋ค.์๋ฅผ ๋ค์ด ๊ฐ๋ก์ ๊ธธ์ด๊ฐ 10, ์ธ๋ก์ ๊ธธ์ด๊ฐ 5์ธ ๋ธ๋ก์ ๊ฒฝ๊ณ์ ๋ฌด์ธ ๊ฒฝ๋น๋ฅผ
[ํ๋ก๊ทธ๋๋จธ์ค] ๊ฐ์ฅ ๋จผ ๋
ธ๋๋ฌธ์ ๋งํฌ๋ฌธ์ ์ค๋ช
n๊ฐ์ ๋
ธ๋๊ฐ ์๋ ๊ทธ๋ํ๊ฐ ์์ต๋๋ค. ๊ฐ ๋
ธ๋๋ 1๋ถํฐ n๊น์ง ๋ฒํธ๊ฐ ์ ํ์์ต๋๋ค. 1๋ฒ ๋
ธ๋์์ ๊ฐ์ฅ ๋ฉ๋ฆฌ ๋จ์ด์ง ๋
ธ๋์ ๊ฐฏ์๋ฅผ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค. ๊ฐ์ฅ ๋ฉ๋ฆฌ ๋จ์ด์ง ๋
ธ๋๋ ์ต๋จ๊ฒฝ๋ก๋ก ์ด๋ํ์ ๋ ๊ฐ์ ์ ๊ฐ์๊ฐ ๊ฐ์ฅ ๋ง์ ๋
ธ๋๋ค์ ์๋ฏธํฉ๋๋ค.๋
ธ๋์ ๊ฐ์ n, ๊ฐ์ ์ ๋ํ ์ ๋ณด๊ฐ ๋ด๊ธด 2์ฐจ์ ๋ฐฐ์ด vertex๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, 1๋ฒ
[๋ฐฑ์ค] ์๋จ์ด ์๊ธฐ๋ ๊ดด๋ก์๋ฌธ์ ๋งํฌ๋ฌธ์ ํ์์ด๋ ์ด๋ฒ ์์ด ์ํ์์ ํ๋ฆฐ ๋ฌธ์ ๋ฅผ ๋ฐํ์ผ๋ก ์์ด ๋จ์ด ์๊ธฐ๋ฅผ ํ๋ ค๊ณ ํ๋ค. ๊ทธ ๊ณผ์ ์์ ํจ์จ์ ์ผ๋ก ์์ด ๋จ์ด๋ฅผ ์ธ์ฐ๊ธฐ ์ํด ์์ด ๋จ์ด์ฅ์ ๋ง๋ค๋ ค ํ๊ณ ์๋ค. ํ์์ด๊ฐ ๋ง๋ค๊ณ ์ ํ๋ ๋จ์ด์ฅ์ ๋จ์ด ์์๋ ๋ค์๊ณผ ๊ฐ์ ์ฐ์ ์์๋ฅผ ์ฐจ๋ก๋ก ์ ์ฉํ์ฌ ๋ง๋ค์ด์ง๋ค.์์ฃผ ๋์ค๋ ๋จ์ด์ผ์๋ก ์์ ๋ฐฐ์นํ๋ค.ํด๋น ๋จ์ด์ ๊ธธ์ด๊ฐ ๊ธธ์๋ก ์์ ๋ฐฐ์นํ๋ค
[ํ๋ก๊ทธ๋๋จธ์ค] ์ด์ค์ฐ์ ์์ํ๋ฌธ์ ๋งํฌ๋ฌธ์ ์ค๋ช
์ด์ค ์ฐ์ ์์ ํ๋ ๋ค์ ์ฐ์ฐ์ ํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋งํฉ๋๋ค.๋ช
๋ น์ด์์ ํ(๋์ด)I ์ซ์ํ์ ์ฃผ์ด์ง ์ซ์๋ฅผ ์ฝ์
ํฉ๋๋ค.D 1ํ์์ ์ต๋๊ฐ์ ์ญ์ ํฉ๋๋ค.D -1ํ์์ ์ต์๊ฐ์ ์ญ์ ํฉ๋๋ค.์ด์ค ์ฐ์ ์์ ํ๊ฐ ํ ์ฐ์ฐ operations๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ฐ์ฐ์ ์ฒ๋ฆฌํ ํ ํ๊ฐ ๋น์ด์์ผ๋ฉด [0,0] ๋น์ด์์ง ์์ผ๋ฉด [์ต๋๊ฐ, ์ต
[ํ๋ก๊ทธ๋๋จธ์ค] ๋จ์ด ๋ณํ๋ฌธ์ ๋งํฌ๋ฌธ์ ์ค๋ช
๋ ๊ฐ์ ๋จ์ด begin, target๊ณผ ๋จ์ด์ ์งํฉ words๊ฐ ์์ต๋๋ค. ์๋์ ๊ฐ์ ๊ท์น์ ์ด์ฉํ์ฌ begin์์ target์ผ๋ก ๋ณํํ๋ ๊ฐ์ฅ ์งง์ ๋ณํ ๊ณผ์ ์ ์ฐพ์ผ๋ ค๊ณ ํฉ๋๋ค.1. ํ ๋ฒ์ ํ ๊ฐ์ ์ํ๋ฒณ๋ง ๋ฐ๊ฟ ์ ์์ต๋๋ค.
2. words์ ์๋ ๋จ์ด๋ก๋ง ๋ณํํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด begin์ด "hit", target๊ฐ
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๊ฒ ๋๋ฒ๋ฌธ์ ๋งํฌ๋ฌธ์ ์ค๋ช
n๊ฐ์ ์์ด ์๋ ์ ์๋ค์ด ์์ต๋๋ค. ์ด ์ ์๋ค์ ์์๋ฅผ ๋ฐ๊พธ์ง ์๊ณ ์ ์ ํ ๋ํ๊ฑฐ๋ ๋นผ์ ํ๊ฒ ๋๋ฒ๋ฅผ ๋ง๋ค๋ ค๊ณ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด [1, 1, 1, 1, 1]๋ก ์ซ์ 3์ ๋ง๋ค๋ ค๋ฉด ๋ค์ ๋ค์ฏ ๋ฐฉ๋ฒ์ ์ธ ์ ์์ต๋๋ค.-1+1+1+1+1 = 3
+1-1+1+1+1 = 3
+1+1-1+1+1 = 3
+1+1+1-1+1 = 3
+1+1+1+1-
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฌํ๊ฒฝ๋ก๋ฌธ์ ๋งํฌ๋ฌธ์ ์ค๋ช
์ฃผ์ด์ง ํญ๊ณต๊ถ์ ๋ชจ๋ ์ด์ฉํ์ฌ ์ฌํ๊ฒฝ๋ก๋ฅผ ์ง๋ ค๊ณ ํฉ๋๋ค. ํญ์ "ICN" ๊ณตํญ์์ ์ถ๋ฐํฉ๋๋ค.ํญ๊ณต๊ถ ์ ๋ณด๊ฐ ๋ด๊ธด 2์ฐจ์ ๋ฐฐ์ด tickets๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ฐฉ๋ฌธํ๋ ๊ณตํญ ๊ฒฝ๋ก๋ฅผ ๋ฐฐ์ด์ ๋ด์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.์ ํ์ฌํญ๋ชจ๋ ๊ณตํญ์ ์ํ๋ฒณ ๋๋ฌธ์ 3๊ธ์๋ก ์ด๋ฃจ์ด์ง๋๋ค.์ฃผ์ด์ง ๊ณตํญ ์๋ 3๊ฐ ์ด์ 1
ํ๊ทธ
DFSBFSMemoizationDijkstraDual Priority QueueHeapHashHash TableHash MapImplementationBrute ForceBrute Forst
์ต๊ทผ ๋๊ธ
์์ง ๋๊ธ์ด ์์ด์