โ v1์ sort์ key๋ฅผ ์ฌ์ฉโ v2๋ sort์ key์์ด ํด๋น ์ธ๋ฑ์ค๋ฅผ ์ง์ ์ฐธ์กฐํด ์ฌ์ฉโ v3๋ lambda๋ฅผ ์ฌ์ฉํด sorting ์กฐ๊ฑด์ inline์ผ๋ก ์ ์ํด์ค๋จผ์ ์ ์ฒด ์์ ์ํ ํ ํน์ ์ธ๋ฑ์ค๋ก ์ํ sort์ key๋ฅผ ์ฌ์ฉํ์ง ์์์ ๊ฒฝ์ฐlamda ๋ฅผ
[์์ ์ํธ]
์กฐ๊ฑด์ ๋ง์กฑํด์ผ๋ง ํ์์ ๊บผ๋ผ ์ ์๋ค.์กฐ๊ฑด์ ๋ง์กฑํ๋๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ๋ชจ๋ ๊ธฐ๋กํ ๋ฆฌ์คํธ๋ฅผ ๋ง๋ฌ๋ฆฌ์คํธ๋ฅผ ์ด์ฉํด ํ๋ฒ ๋ฐฐํฌ์ ๊บผ๋ผ ์ ์๋ ์๋ฅผ ๊ธฐ๋ก๋ชจ๋ ๊บผ๋ผ ๋ ๊น์ง ๋ฐ๋ณตtime์ ์ด์ฉํ ๊ฒ์ฌํ๋ฒ์ ๋ฐ๋ณต๋ฌธ์ผ๋ก ํด๊ฒฐํ์ฌ ๋น ์ ธ๋์์ผ ํ๋ ๊ฐ์ด 100% ๊ฐ ๋ ๋ ๊น์ง t
๋ด ํ์ผ๋ก ํ์ง ๋ชปํ๋ค.๋ฌธ๋ฒ์ ์ผ๋ก ๋ถ์กฑํ๊ณ ๋ฆฌ์คํธ(deque)๋ฅผ ๋ฏธ๋ฆฌ 0์ ์ฑ์๋๋ ๋ฐ์์ ํ์ง ๋ชปํ๋ค.deque๋ queue๋ฅผ ์ด ์ด์ ๋ list์ ์ ์์๋ฅผ ๋นผ๋ฉด ๊ต์ฅํ ๋นํจ์จ์ด๊ธฐ ๋๋ฌธ์ด๋ค.๋ค๋ฆฌ์ ๋ฌด๊ฒ๊ฐ 0์ธ ํธ๋ญ์ด ์๋ ๊ฒ์ฒ๋ผ 0์ผ๋ก ๋ฐํฌ๋ฅผ ์ฑ์๋๋ค.์๊ฐ์ ๋งค ๋ฐ
ํด๋น ๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ ํ๋ค.์กฐํฉ๊ฐ์ฅ ์๊ฐํ๊ธฐ ์ฌ์ด ๋ฐฉ๋ฒ์ ๋ชจ๋ ์กฐํฉ ์ค ๊ฐ์ฅ ํฐ ๊ฐ์ ๊ณ ๋ฅด๋ ๊ฒ์ด๋ค.ํ์ง๋ง ๋ฌด๋ ค O(10000!)์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ฏ๋ก ๋ถ๊ฐ๋ฅํ๋ค.์ด๋ป๊ฒํ๋ฉด ์ฝ๊ฒ ์ ๊ฒ ๋น๊ตํ ์ ์์๊น?๋ฐฉ๋ฒ์ ๋ฌธ์์ด์ ์กฐ์ํ๋ ๊ฒ์ด๋ค!ํ์ด์ฌ์ sorted()๋ก ๋ฌธ์์ด์ ์ ๋ ฌ
C++ ์ฒ๋ผ DFS๋ฅผ ์ด์ฉํด์ ํ๋ ค๊ณ ํ์ผ๋ global์ด๋ผ๋ ๊ฒ์ ์์ง ๋ชปํ๋ค.๋ฆฌ์คํธ์ ํฌ๊ธฐ ๋งํผ ๋ํ์ ๋ target๊ณผ ๊ฐ์ด ๊ฐ์ผ๋ฉด global answer 1 ์ฆ๊ฐ์๋๋ผ๋ฉด ์๋ฌด๊ฒ๋ ํ์ง ์๊ณ ํจ์๋ฅผ ๋น ์ ธ๋์จ๋ค.์ฃผ์์ฌํญ๋ฐ๊ฐ์ answer ์ ์ธ ํ ํจ์ ๋ด glob
x, y์ ๋์ผํ ์ซ์๋ฅผ ๋ง๋ค์ด์ผ ํ๋ค.x๊ฐ M๋งํผ ์ฆ๊ฐ ํ ๋ ๋ค์ x๊ฐ ๋๋ค.๋ฐ๋ผ์ x๋ฅผ M๋งํผ ์ฆ๊ฐ ์ํจ ๊ฐ์ n์ผ๋ก ๋๋ ๋๋จธ์ง๊ฐ y์ธ ๊ฐ์ ๊ตฌํ๋ค.์ด ๊ณผ์ ์ ์ต์๊ณต๋ฐฐ์๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋จํ๊ฒ๋ ๋ n, m์ ๊ณฑ๊น์ง ์งํํด์ค๋ค.์ต์๊ณต๋ฐฐ์ ์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ๋ฒ
๋ธ๋ฃจํธํฌ์ค๋ก ํผ ๋ฌธ์ ์ต๋,์ต์๊ฐ๋ง ๊ตฌํ๋ฉด ๋๋ฏ๋ก ์๊ฐ ์ ์ฝ์ ์ํด ์, ๋ค๋ก ๋ฐ๋ณต๋ฌธ์ ๋๋ฆผ๊ณตํต : 0 ~ 9๊น์ง ์ซ์์ ๋ํด ๋ฌธ์์ ๊ฐฏ์๋ณด๋ค ํ๋ ๋ง๊ฒ ์์ด์ ๊ตฌํ๋ค.MIN ๊ฐ์์ด์ด๋ฏ๋ก ์์ ๊ฐ๋ถํฐ ์์๋๋ค.๊ตฌํ ์์ด ์ค ํ๋๋ฅผ ๋ฝ์ ๋ถ๋ฑํธ ์ ๋ค์ ๊ฐ์ ๋น๊ตํ๋ค.์กฐ๊ฑด
๋ฐฑํธ๋ํน์ผ๋ก ํธ๋ ๋ฌธ์ ์ด๋ค.\-10 ~ 10์ ์ซ์ ์ค ํ๋๋ฅผ ์ ํํ๋ค.V์ ์ถ๊ฐํ ๋ชจ๋ ๊ฐ์ ํฉ์ด ํ์ฌ ์ธ๋ฑ์ค์ ๋ถํธ์ ์ผ์นํ๋ฉด V์ ์ ํํ ๊ฐ ์ถ๊ฐ ๋ถํธ ์กฐ๊ฑด๊ณผ ๋ค๋ฅด๋ค๋ฉด ์ถ๊ฐํ์ง ์๊ณ ๋ค์ ์๋ฅผ ์ ํํ๋ค.์ด ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค๊ฐ ์ธ๋ฑ์ค๊ฐ ๋ถํธ ๊ฐฏ์์ ์ผ์นํ๋ฉด ๊ทธ ๋์
๐ฆ ๋ฌธ์ ๋งํฌ โ๏ธ ๋์ ํ์ด ์ฒ์์๋ ์์ด๋ก ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฌ์ฉํ์ง๋ง ์ญ์๋.. ์๊ฐ์ด๊ณผ ์๋ค ๋ด ํ์ผ๋ก ํ ์๊ฐ ์์ด์ ์ธํฐ๋ท์ ์ฐธ๊ณ ํ๋ค. ๊ทธ๋ฆฌ๋๋ฐฉ์์ ์ฌ์ฉํด์ผ ํ๋ค๊ณ ํ๋ค. > ๋จผ์ ๋จ์ด์ ์ํ๋ฒณ์ ์๋ฆฟ์์ ๋ง๊ฒ 10์ ์ ๊ณฑ์๋ฅผ ํด์ ๋ํด์ค๋ค. ๋ชจ
์กฐํฉ์ ์ฌ์ฉํด ์คํํธ ํ์ ํ๋ณด์๋ฅผ ๊ตฌํ๋ค.๋๋จธ์ง ์กฐํฉ์ ๋งํฌ ํ์ ํ๋ณด์์ด๋ค.์กฐํฉ์์ 2๋ช ์ ๋ฝ์ ์กฐํฉ์์ ํฉ์ ๊ตฌํ๋ค.์คํํธ ์ ๋งํฌ ํ์ ์ดํฉ์ ์ฐจ๋ฅผ ๊ตฌํ๋ค.ํด๋น ๊ณผ์ ์ ๊ตฌํ ์กฐํฉ๋งํผ ๋ฐ๋ณตํ๋ค.๋ด๊ฐ ํ๊ณ ์ถ์๋ ๋ฐฉ๋ฒ (DFS ์ฌ์ฉ ๋ฐฉ๋ฒ)DFS๋ฅผ ํตํด ์ด ์ธ์์ ๋ฐ
DFS๋ฌธ์ ์ฒ๋ผ ํ๋ฉด ๋๋ค.Visited ๋ณด๋ค ๋ฌธ์ ์์ฒด์ ํ์๋ฅผ ํด๋๋ ๊ฒ์ด ๋ ์ข๋ค.<์์> 1\. ๋ฌธ์๋ฅผ ์ซ์๋ก ์นํํด๋๋ค. 2\. ์นํํ ์ซ์๋ฅผ ์ด์ฉํด ์ต๋๋ก ๊ฐ ์ ์๋ ๊ธธ์ ์ฐพ๋๋ค.์ด ๋ฌธ์ ๋ ์ต๋ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ฌ์ ๊ทธ๋ฐ์ง DFS๊ฐ ๋ ๋น ๋ฅด๋ค.set
๋ฐฐ์ด์์ ๊ฐ์ ์ ํด์ผํ๋ ์์น๋ฅผ zero์ ๊ธฐ๋กํด๋๋ค.DFS๋ฅผ ์ด์ฉํด ๊ฐ๋ฅํ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐฑํธ๋ํน์ผ๋ก ๋ฐ์ ธ๋ณธ๋ค.์์ ์ฌ๊ฐํ์ ์์ ์ง์ ์ ์ฐพ๋ ๊ฒ์ด ์ค์ํ๋ค -> (x//3 \* 3)<๊ฒ์ฌ ์กฐ๊ฑด>1\. ๊ฐ๋ก ์ค์ ์๋ ์ซ์ ํ์ธ2\. ์ธ๋ก ์ค์ ์๋ ์ซ์ ํ์ธ3\
๋ฐฑํธ๋ํน ๋ฌธ์ ๊ฐ์ ํ์ ์ด์ฐจํผ ํ๋ ๋ฐ์ ๋ชป๋๋ฏ๋ก ๊ฒ์ฌํ ํ์ ์์์๋ ์ด์ ์ ๊ฒฝ์ฐ์ง ์๊ณ ์์ ์ด๊ณผ ๊ฒน์น๋ ๋ถ๋ถ์ด ์๋์ง ๊ฒ์ฌcol\[j] == col\[i]๋ฅผ ํตํด ํ์ฌ ์ด๋ณด๋ค ์์ ์๋ ์ด์ ํ๊ณผ ๊ฒน์น๋ ์ง ๊ฒ์ฌabs(col\[i] - col\[j]) == (i
๋น ๋ฅธ ๊ณ์ฐ์ ์ํด 1๊ณผ 0์ผ๋ก ๋๋ ๊ฐ๋ก์ ์ธ๋ก๋ฅผ ๋นํธ๋ง์คํฌ๋ก ํํํ๋ค.๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ ๋ฐฐ์ด์ด ๊ฐ์ง ์ ์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ด๋ค.๋ฐ๋ผ์ (1 << n\*m) ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.2์ฐจ์ ๋ฐฐ์ด์ ๋นํธ๋ง์คํฌ๋ก ํํํ์ผ๋ฏ๋กi\*m+j์ ์์ ์ด์ฉํด ๋ชจ๋ ์์น๋ฅผ ๊ฒ์ฌํ๋ค
5๊ฐ ๋ฏธ๋ง ์ผ ๋์ 5๊ฐ ์ด์์ผ ๋๋ฅผ ๊ตฌ๋ถํด์ผํ๋ค.๋ฌด์กฐ๊ฑด ๋ฐฐ์์ผ ํ๋ ์ํ๋ฒณ์ ๋ฐฐ์ ์์ ์ฒดํฌํด๋๋ค.DFS๋ฅผ ํตํด k๊ฐ ์ํ๋ฒณ์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐ์ ธ๋ณผ ์ ์๋ค.<์๊ฐ์ด๊ณผ ํด๊ฒฐ>๋ฐฐ์ฐ๋ ์์๋ ์ค์ํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด์ ์ ๋ฐฐ์ด ๋จ์ด๋ฅผ ๋ค์ ๋ณผ ํ์๋ ์๋ค.๋ฐ๋ผ์,
์ต์ ์ด๋์ ๊ตฌํด ๋น ์ ธ๋์ค๋ฉด ๋๋ฏ๋ก BFS๋ก ๊ตฌํ๋ค.๋นจ๊ฐ๊ตฌ์ฌ๊ณผ ํ๋๊ตฌ์ฌ์ ๋์์ ์์ง์ด๊ธฐ์ 4์ฐจ์๋ฐฐ์ด์ ํตํด ๋ฐฉ๋ฌธ์ฌ๋ถ๋ฅผ ๊ฒ์ฌํ๋ค. (๋ธ๋ก๊ทธ๋ฅผ ์ฐธ๊ณ )\`> \* ๋ง์ฝ ๋ ๊ตฌ์ฌ ์์น๊ฐ ๊ฐ๋ค๋ฉด ๋ ๋ง์ด ์์ง์ธ ๊ตฌ์ฌ์ ํ ์นธ์ด์ ์ผ๋ก ๋๋ ค์ค์ผํ๋ค.4์ฐจ์ ๋ฐฐ์ด์ ์ ์ธํด ๋ฐฉ๋ฌธ์ฌ๋ถ
ํฌ ํฌ์ธํฐ ๋ฌธ์ left์ right๋ฅผ ์ ํด์ ๊ฐ์ด ์์ผ๋ฉด ๋ํด์ฃผ๊ณ ํฌ๋ฉด ๋นผ์ฃผ๊ณ ๊ฐ์ผ๋ฉด count๋ฅผ ์ธ์ฃผ๋ ํ์์ผ๋ก ์งํํ๋ค.<์ค์ํฌ์ธํธ>sum์ด m๋ณด๋ค ๋ ์์ ๋ right๊ฐ n์ ๋์ด๊ฐ๋ฉด sum์ด ๋ ์ฆ๊ฐํ ์ ์์ผ๋ฏ๋ก ์ข ๋ฃํด๋ ์๊ด์๋ค. ํฌ ํฌ์ธํฐ ์ฌ์ฉ๋ฒ์
๐ฆ ๋ฌธ์ ๋งํฌ โ๏ธ ๋์ ํ์ด > * ์๋ผํ ์คํ ๋ค์ค์ ์ฒด + ํฌ ํฌ์ธํฐ ๋ฌธ์ ์๋ผํ ์คํ ๋ค์ค์ ์ฒด์์ $i^2$๊น์ง ๐ ๋์ ์ฝ๋ โ๏ธ ๋ค๋ฅธ ์ฌ๋ ํ์ด ๐ ๋ค๋ฅธ ์ฌ๋ ์ฝ๋ ๐ ์ ๋ฆฌ ๐ ์ฐธ๊ณ
์์๊ฐ ์์ฐ์๊ฐ ์๋ ์์๊ฐ ๊ฐ๋ฅํ ์ ์์ด๋ค.๋ฐ๋ผ์, ์ด์ ํฌ ํฌ์ธํฐ ๋ฌธ์ ์ ๊ฐ์ด ํธ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.๊ฐ์์ ๋ชจ๋ ์กฐํฉ์ ๊ตฌํด( $O(2^1000)$ ) ๋ํด๋ณด๋ ๊ฒ์ ์๊ฐ์ด ์์ฒญ ๋ง์ด ๊ฑธ๋ฆฐ๋ค.< ํ์ด ์์ >๋ชจ๋ ๋ถ๋ถํฉ์ $O(n^2)$์ผ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅํ๋ค.๋์
$2^{20}$ ์ $10^6$, $2^{40}$ ์ $10^{12}$1์ต์ $10^8$ (์๊ฐ๋ณต์ก๋ ๊ณ์ฐ ์ ์ฌ์ฉ)40๊ฐ์ ๋ชจ๋ ์กฐํฉ์ ๋ง๋ค๊ธฐ ์ํด์ $O(2^{40})$ ๋งํผ์ด ํ์ํ๋ค.๋ฐ๋ผ์ ์กฐํฉ์ ๋ฐ์ ์ฉ ๋๋ ๋ชจ๋ ์กฐํฉ์ ๊ตฌํ๊ณ ๊ทธ ํฉ์ ํฌ ํฌ์ธํฐ๋ก ๊ตฌํด์ ๋ต
๋ชจ๋ ์กฐํฉ์ ํฉ์ ๊ตฌํ๋ฉด $O(4^{4000})$์ด ์ต์ ์ด๋ฏ๋ก ์ ๋ ๋ถ๊ฐ๋ฅ ํ๋ค.๋ฐ๋ผ์, 4๊ฐ์ ์ซ์๋ฅผ ์ชผ๊ฐ ๋ ๊ฐ์ฉ ๋ํ ๊ฐ์ผ๋ก ๋๋๋ค.< ํ์ด ์์ >1\. ํฌ ํฌ์ธํฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฌํ๋ค.2\. ๋ ๋ฆฌ์คํธ ๊ฐ์ ๋ํด์ 0 ์ด๋ฉด ๊ฐ๊ฐ์ ๋ฆฌ์คํธ์
์ ํ์ ์ธ BFS ๋ฌธ์ ์ด๋ฉฐ ์๊ฐํด์ผ ํ ๊ฒ์ ๋ฑ ํ๋์๋ค. \-> ์ด๋ป๊ฒ LEFT์ RIGHT๋ฅผ ๋ค์๋ฆฌ์๊ฐ ์๋๋์๋ ์ ์ ํ ๊ตฌํํ ๊ฒ์ธ๊ฐ..?L : ์ฒซ๋ฒ์งธ ์๋ฆฟ์๋ ๋๋๊ธฐ 1000์ ํตํด ๋๋จธ์ง ์ธ์๋ฆฌ๋ ๋๋จธ์ง 1000์ ํตํด ๊ตฌํ ์ ์๋ค. => (X%1000)\
์ฒซ ํ์ด ๋ ๋ฉ๋ชจ๋ฆฌ ์ ํ์ด ์๋ค๋ ๊ฑธ ์์์ง๋ง 3x3 ๋ฐฐ์ด์ ์ํ๋ฅผ ํ๋ก ๋ฃ์ด์ ๋๊ธฐ๋ ค๊ณ ํ๊ณ ๋น์ฐํ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค.๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๋ฅผ ํผํ๊ธฐ ์ํด์ ๋ฆฌ์คํธ๋ก ์์น๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ ๋์ ๋ฌธ์์ด๋ก ์์น ์ํ๋ฅผ ํํํด์ผ ํ๋ค.๋ฌธ์์ด์ ํตํ ์์น ์ํ ๊ธฐ๋ก ๋ฐ ๋ฐฉ๋ฌธ ํ์
๋ฌผ์ ์์ด ํญ์ ๊ฐ์ผ๋ฏ๋กa->b , a->cb->c , c->ac->b , b->a์ด 6๊ฐ์ง ๊ฒฝ์ฐ๋ก ๋ฌผ์ ์ฎ๊ธฐ๋ ๊ฒ๋ง ์๊ฐํด์ฃผ๋ฉด ๋๋ค.๋ํ, ๋ฐฉ๋ฌธ ๊ฒ์ฌ๋ a, b, c ๊ฐ ๋ฌผ์ ์์ ๋ฐ๋ผ ์ฒดํฌํ๊ธฐ ์ํด 3์ฐจ์ ๋ฐฐ์ด์ ์ด์ฉํ๋ค.C์ ๋ฌผํต์ ํ์ํ์ง ์๊ณ A์ B ๋๊ฐ์
๋ณดํต ๋ฌธ์ ๋ ๊ฐ์ฅ ๋น ๋ฅธ ์๊ฐ์ ๊ตฌํ ๋ต์ ๊ฐ์ง๊ณ ๋ฃจํ๋ฅผ ํ์ถํ๋ค. ํ์ง๋ง ์ด ๋ฌธ์ ๋ ๊ฐ์ฅ ๋น ๋ฅธ ์๊ฐ์ ๋์ฐฉํ ๋ชจ๋ ๋ต์ ์ํ๋ค.๊ฐ์ ์๊ฐ์ ๊ฐ์ ์์น์ ๋๋ฌํ ๊ฒ ๊น์ง๋ ์ธ์ ํด์ค์ผ ํ๋ค.๋ฐฉ๋ฌธ ์ฒดํฌ๋ฅผ push ์ ์ ํ๋ฉด ๋์์ ๋์ฐฉํ ๋จ ํ๋๋ง push๋๋ค.๋ฐฉ๋ฌธ ์ฒดํฌ๋ฅผ
์ผ๋ฐ์ ์ธ BFS์ ๋ฌธ์ ํ์ด ๋ฐฉ๋ฒ์ด ๋ค๋ฅด๋ฉฐ ์์ด๋์ด๊ฐ ํ์ํ๋ค. ์ฃ์๋ค์ด ๋ฌธ์ ์ด๋ฉฐ ํ์ถํ๋ ๊ฒฝ์ฐ๊ฐ ์๊ณ ์๊ทผ์ด๊ฐ ์ฃ์๋ค์ ๊ตฌํ๋ฌ ๊ฐ๋ 3๊ฐ์ง ์๋๋ฆฌ์ค๊ฐ ์๋ค๊ณ ์๊ฐํด๋ณด์.์ฒซ๋ฒ์งธ ์ฃ์๊ฐ ๋ฌธ์ ์ด๊ณ ๋์ค๋ ๊ฒฝ์ฐ๋๋ฒ์งธ ์ฃ์๊ฐ ๋ฌธ์ ์ด๊ณ ๋์ค๋ ๊ฒฝ์ฐ์๊ทผ์ด๊ฐ ์ฃ์๋ฅผ ๊ตฌํ๋ฌ ๊ฐ๋
BFS์ ์คํ ์์๋ฅผ ์ข ์ก์ ์๊ฐ ์๋ค..์ด๋กํ์ง?\-> ์์๋ฅผ ๋ค์ฃฝ ๋ฐ์ฃฝ์ด๋ผ๋ฉด ์ผ๋จ ์ ์ฅํด๋๋ ๊ฒ์ด ์ณ๋ค.\--> Key๊ฐ ์๋ ๋ฌธ์ ๋ง๋๋ค๋ฉด ํ์ฌ ์งํํ ์ ์์ง๋ง ๋์ค์ ์งํํ ์ ์๋ ๊ฒ์ด๋ฏ๋ก ๋ค๋ฅธ ํ์ ์ ์ฅํด๋๋ค.์ด์ ๋ฅผ ์ฐพ๊ธฐ์ ์ ๋ฌธ์ ๊ฒ์ฌํ๊ณ ๊ทธ ํ์ ์ด์ ๋ฅผ
๋๊ฐ์ง ์๋ฌธ์ด ์์๋ค. ์ด๋ป๊ฒ ๋ฐฐ์ด์ ์ ๋ณด๋ฅผ ์ ์งํ ๊ฒ์ธ๊ฐ? ๋ชจ๋ ์ ๋ณด๋ฅผ ๋ณด๊ดํ๋ฉด dfs, bfs ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋๋ฌด ๋ง์์ง์ง ์์๊น?5๋ฒ๋ง ์งํํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ dfs๋ฅผ ํ๋ฉด ์ต๋ 5๊ฐ์ ๋ฐฐ์ด ๋ณต์ฌ๋ณธ์ด ์๊ธด๋ค.๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ์ด๊ณผ๋ฅผ ๊ฑฑ์ ํ์ง ์์๋ ๋๋ค. ๐ค ๊ทธ
๊ธฐ๋ณธ์ ์ธ BFS ๋ฌธ์ ์ด๋ค.๊ฐ๊ฐ์ ๊ฒฝ์ฐ ( +1, -1, jump + k ) ๋ฅผ ๋๋ ํ์ ๋ฃ๋๋ค.์ด ๋ ๋ฐ๋์ ๋ฐฉ๋ฌธ ์ฒดํฌ๋ฅผ ํด์ค์ผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ด๊ณผ๋์ง ์๋๋ค.count๊ฐ ํ๋์ฉ ๋์ด๋๋ค๋ ๊ฒ๋ง ์กฐ์ฌํด์ฃผ๋ฉด ๋๋ค.3๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ for๋ฌธ์ ํตํด ๊น๋ํ ์ ๋ฆฌํ๋ค.๋ํ for๋ฌธ์
์ฒ์์ ๋ฐํฌ์ ์์ผ๋ก ๋ฃ์ด์ ๊ฑฐ์ธ์ฐ๋ ๊ฐฏ์๊ฐ ์ ์ ๊ฒ๋ถํฐ ๋ฐฉ๋ฌธํ๋ ค๊ณ ํ์ผ๋ ์คํจํ๋ค. ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ์์ ๋ ๋น ๋ฅธ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ธ ๊ฒ ๊ฐ๋ค.์ด ๋ฌธ์ ์ ํต์ฌ์์ด๋์ด๋ ํ ๋ฐฉํฅ์ผ๋ก ๊ฐ ์ ์๋ ๊ณณ์ ๋ชจ๋ ๋ฐฉ๋ฌธํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ๊ทธ ์๊ฐ์ ๋ฐฉ๋ฌธํ ์ ์๋ ๊ณณ์
1, 2, 3์ ์ฌ์ฉํ ์ ์์ผ๋ฏ๋ก n-1, n-2, n-3์ ์ซ์๋ ๋ชจ๋ n์ผ๋ก ๋ง๋ค ์ ์๋ค.๋ฐ๋ผ์, ๋จผ์ dp1, dp2, dp3์ ์ด๊ธฐ ๊ฐ์ ๊ตฌํด์ค๋ค.์ด๋ ์กฐ์ฌํด์ผํ ์ ์ dpํฌ๊ธฐ๋ฅผ n+3ํฌ๊ธฐ๋ก ๋์ ํ ๋นํด์ค์ผ ์ด๊ธฐํ์ ์๋ฌ๊ฐ ๋์ง ์๋๋ค.dp\[i] = dp\[
๊ฐ์ฅ ๊ธธ๊ฒ ์ฆ๊ฐํ๋ ๋ถ๋ถ์์ด์ด๋ฏ๋ก๊ธฐ๋ณธ์ ์ผ๋ก ์ฒซ ์ซ์๋ถํฐ ํ์ฌ ์ธ๋ฑ์ค๊น์ง ์ฆ๊ฐํ๋ ๊ฐฏ์๋ฅผ ๊ตฌํ๋ฉด ๋๋ค.ํ์ง๋ง ์ผ๋ถ๋ง ๋ณด๋ ๊ฒ์ด ์๋๋ผ ์ ์ฒด ์ซ์๋ฅผ ๋ชจ๋ ๋ด์ผํ๋ค.ํ์ฌ ๊ฒ์ฌํ๋ ์(a\[i])๋ณด๋ค ์์ ๊ฐ๋ง ์ธ์ ๋๊ธฐ ๋๋ฌธ์ด๋ค.๋๋ฌด ํฐ ์ซ์๊ฐ ์์ ๋์๋ฒ๋ฆฌ๋ฉด ๊ฐ์ฅ ๊ธด ์ฆ๊ฐ๋ถ
๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ์์ด์ ๋ง์กฑํ๋ ์์ด์ ์ถ๋ ฅํด์ผ๋ง ํ๋ค.๋ฐ๋ผ์,1\. Backtrace() ๋ฐฉ๋ฒ2\. ๋ฐ๋ณต๋ฌธ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค.๋๋ค ๋ค์์ ๋ถํฐ ํ์ฌ ๊ฐฏ์์ ๋ง๋ ๊ฐ์ ์ถ๋ ฅํ๋ฉด ๋๋ค.
๐ฆ ๋ฌธ์ ๋งํฌ > ๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค. ๋ฌธ์์ด์ด ํฐ๋ฆฐ๋๋กฌ์ธ์ง ๊ฒ์ฌํ๋ ๋ฌธ์ (๋ฌธ์์ด์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋ ์๋ฌธ์์ ์ซ์๋ก ๊ตฌ์ฑ๋์ด์ ธ ์์) โ๏ธ ํ์ด ๋ฌธ์์ด์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์๋ ์๋ฌธ์์ ์ซ์ ์ด๋ฏ๋ก ๋๋จธ์ง๋ ์ ์ธํ ๋ฐฐ์ด์
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.Do not allocate extra space for another array, you must do this by > modifying the input array in-place with O(1) extra memo
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ก๊ทธ์ ์ ๋ถ๋ถ์ ์๋ณ์์ด๋ค.๋ฌธ์๋ก๊ทธ๋ ์ซ์๋ก๊ทธ๋ณด๋ค ํญ์ ์์ ์กด์ฌํ๋ค.๋ฌธ์๊ฐ ๋์ผํ ๊ฒฝ์ฐ ์๋ณ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ค.๋ฌธ์๋ก๊ทธ๋ฉด ๋ฌธ์๋ง, ์ซ์๋ก๊ทธ๋ฉด ์ซ์๋ง์ ๊ฐ์ง๋ค.์ซ์๋ก๊ทธ๋ ์ ๋ ฅ ๊ทธ๋๋ก๋ฅผ ์ ์งํ๋ค.์ ์ถ๋ ฅ๋ฌธ์๋ก๊ทธ๋ ํญ์ ์
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ return the most frequent word that is not in the list of banned words.๊ธ์ง๋ ๋จ์ด๋ฅผ ์ ์ธํ ๊ฐ์ฅ ๋น๋ฒํ ๋จ์ด๋ฅผ ๋ฐํํ์ธ์.์ ์ถ๋ ฅwords์ ๋ถํ์ํ ๋ฌธ์๋ค์ re.
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ Given an array of strings strs, group the anagrams together. You can return the answer in any order.์ ๋๊ทธ๋จ ๋จ์ด๋ ๊ตฌ๋ฅผ ํ๋์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ๋ง์ ํ์ฌ ํ๊ฒ์ ๋ง๋ค ์ ์๋ ๋ฐฐ์ด์ ๋ ์ซ์ ์ธ๋ฑ์ค๋ฅผ ๋ฆฌํดํ๋ผ๋ธ๋ฃจํธ ํฌ์ค ํ์ด ๋ฐฉ๋ฒํ์ด์ฌ in์ ์ด์ฉํ ์ข ๋ ๋น ๋ฅธ ํ์ดtarget ์ซ์์์ ์ซ์ ํ๋๋ฅผ ๋นผ๋ ๊ฒ์ ํด๋นํ๋ ์์๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ด๋ in์ ์ด์ฉํ
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ๋์ด๋ฅผ ๋น๊ตํ์ฌ ๋น ์จํ ์ผ๋ง๋ ๋ง์ ์์ ๋ฌผ์ด ์์ผ ์ ์๋ ์ง ๊ตฌํ๋ผ.๋ชปํ..ํด๊ฒฐ๋ฐฉ๋ฒํฌ ํฌ์ธํฐ ํ์ฉ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ์ ์ต๋ ์ฅ๋ฒฝ ๋์ด๋ฅผ ๊ตฌํ๋ค.์ด ์ฅ๋ฒฝ์ ๋๋ฌํ ๋๊น์ง ํ ์ชฝ์ด ์งํํ๊ฒ ๋๋ค.์งํํ๋ ์ชฝ์ ์งํํ๋ ์ชฝ์
์ด ๋ฌธ์ ์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ dp๋ฅผ ์ด์ฉํ๋ ๊ฒ์ด๋ค.๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ dp๋ฅผ ์ด์ฉํด์ผ ํ ๊น?์์ด {10 30 10 20 20 10} ์๋ค๋ฉด ๋จผ์ ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค์ ๊ฐ์ํ๋ ๋ถ๋ถ ์์ด์ ๊ตฌํ๋ค.๋ง์ฝ 4๋ฒ์งธ 20์ ๊ฐ์ํ๋ ๋ถ๋ถ์์ด์ ๊ตฌํ๊ฒ ๋๋ค๋ฉด 4๋ฒ์งธ ์ด์ ์ธ๋ฑ์ค์์ 4๋ฒ์งธ
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ๋ฐฐ์ด์ ์ ๋ ฅ๋ฐ์ ํฉ์ผ๋ก 0์ ๋ง๋ค ์ ์๋ ์์ ๊ฐ๋ค์ ๋ฆฌ์คํธ์ ๋ฃ์ด์ ๋ฐํํ๋ผ. ์ค๋ณต๊ฐ์ ์ ์ธ์์ผ์ผ๋ง ํ๋ค.๋ชปํ..ํ์์์ํ์์์ ํ์ดfor๋ฌธ์ 3๊ฐ๋ฅผ ๋๋ ค O(n^3)์ผ๋ก ํด๊ฒฐํ๋๋ ์ญ์๋ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ์๋ค.ํฌ
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ 2\*n ๊ฐ์ ๋ฐฐ์ด์์ n๊ฐ์ ์์ ๋ง๋ ํ ์์ ์ต์๊ฐ์ ํฉ์ด ์ต๋๊ฐ ๋๋ ๊ฐ์ ๋ฐํํ์ธ์.์ ๋ ฌ ํ ์ค๋ฆ์ฐจ์ ํ์ด์ ๋ ฌ์ ํ๋ฉด ๋น์ทํ๊ฑฐ๋ ๊ฐ์ ์ซ์๋ผ๋ฆฌ ์์ ๋ง๋ค ์ ์๋ค.์์ ๋ง๋ค์์ ๋ ์ฒซ๋ฒ์งธ ์์๊ฐ min๊ฐ์ผ์ ๋ฐ
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ํ์ฌ ์ธ๋ฑ์ค์ ๊ฐ์ ์ ์ธํ ๋ชจ๋ ์์์ ๊ณฑ์ ๊ฒฐ๊ณผ๊ฐ ๊ฒฐ๊ณผ ์ธ๋ฑ์ค ๊ฐ์ ๋ค์ด๊ฐ ๋ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ผ.์ ํ์ฌํญ : ์๊ฐ๋ณต์ก๋ O(n)๋ด์ ํ๋ ๋๋์ ์ ์ฌ์ฉํ์ง๋ง๋ผ.์ด์ค ํฌ๋ฌธ์ ์๊ฐ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค.๋ง์น ํฌํฌ์ธํฐ ๋น์ทํ ๋๋์ผ
๋ ์คํ ๋์ด ์์ผ๋ก ๋์ด์๋ ๊ฒ์ด ํฌ์ธํธ์ด๋ค.์์ด๊ธฐ ๋๋ฌธ์ ์ถ๋ฐ์ง์ ์ด ์ด๋๊ฐ ๋์๋ ๋ชจ๋ ์ง์ ์ ์ง๋ ์ ์๋ค.๋ฐ๋ผ์, ์ด๋ ์์น์์ ์์ํ ์ ์๊ฒ weak์ง์ ์ ํ ๋ฐํด ์ดํ๋ก๋ ํ์ฅ์ํจ๋ค.weak.append(weak\[i]) for i in range(length)
๊ฐ๋จํ BFS๋ฌธ์ ํ์ฌ word์ 1๊ฐ ์ฐจ์ด๊ฐ ๋๋ ๋ค์ ๋จ์ด๋ฅผ ์ ํํด์ ํ์ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.BFS๋ฅผ ํตํด ๊ฐ๋ฅํ ๋ชจ๋ ํ๋ ์ฐจ์ด๋๋ ๋จ์ด๋ฅผ ๊ฒ์ฌํ๊ณ target์ ์ฐพ์ผ๋ฉด ํ์ฌ ๋จ๊ณ ๋ฐํ.BFS ๋๊น์ง target์ ์ฐพ์ง ๋ชปํ๋ฉด 0์ ๋ฐํํ๋๋ก ํ๋ค.
DFS ๋ฌธ์ ์กฐ๊ฑด์ ๋ง์ผ ๊ฐ๋ฅํ ๊ฒฝ๋ก๊ฐ 2๊ฐ ์ด์์ผ ๊ฒฝ์ฐ ์ํ๋ฒณ ์์๊ฐ ์์๋ ๊ฒฝ๋ก๋ฅผ return ํ๋ฏ๋กํฐ์ผ์ ๋ชฉ์ ์ง๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ์ ์ํํ๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋น ๋ฅธ ์ํ๋ฒณ๋ถํฐ ํ์์ ํ๊ฒ ๋๋ค.ํ์์ ํ๋ฉด์ ์ฌ์ฉํ ํฐ์ผ์ ์ ๊ฑฐํ๊ณ ๋ชฉ์ ์ง๋ ๊ฒฝ๋ก์ ๋ฃ๋๋ค. dfs ๋น ์ ธ๋์ค
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ์ญ์์ผ๋ก ์ ์ฅ๋ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ์ซ์๋ฅผ ๋ํ๋ ๋ฌธ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ก ํฉ์ ๋ฐ๋ก ๊ตฌํ ์ ์๋ค. ์ด๋ฅผ ํ์ด์ฌ์ ๋ฆฌ์คํธ ํํ๋ก ๋ณํํ์ฌ ๋ง์ ์ ๊ณ์ฐํ๊ณ ๋ค์ ์ญ์ฐ๊ฒฐ๋ฆฌ์คํธํํ๋ก ๋ฐ๊ฟ์ ๋ฐํํด๋ณด์.Book ๋งํฌ
๋ธ๋ฃจํธํฌ์ค ๋ฌธ์ ๋ฌธ์ ์ ํต์ฌ์ ์ด์ ์ ๋ง์ถ ์๋ฌผ์ ๋ฅผ ํ์ฅ์ํค๋ ์์ด๋์ด๋ค. ์ด๋ฅผ ํตํด ์ด์ ์ ์ผ๋ถ๋ถ๋ ์ฝ๊ฒ ์๋ฌผ์ ์ ๋ง์ถฐ๋ณผ ์ ์๋ค.์ด์ ๋ฅผ 90๋๋ก ๋๋ ค๋ณด๋ฉด์ ๊ฐ๋ฅํ ๋ชจ๋ ์ด์ ์ ์์น๋ฅผ ์๋ํด๋ณด๊ณ ๋ง์ผ๋ฉด True ๋ชจ๋ ์๋๋ฉด False๋ฅผ ๋ฐํํ๋ค.์ฒ์์๋ ์์ ์๋ฌผ์ ํ
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ง๋ฉด ๋ชจ๋ ๋ฌธ์๊ฐ ํ ๋ฒ๋ง ๋ํ๋๋๋ก ์ค๋ณต ๋ฌธ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ๊ฒฐ๊ณผ๊ฐ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฐ๊ณผ ์ค์์ ์ฌ์ ์ ์์๋ก ๊ฐ์ฅ ์์ ์ง ํ์ธํด์ผํฉ๋๋ค.์ค๋ณต๋ฌธ์๋ฅผ ์ ๊ฑฐํ๊ณ ์ฌ์ ์์ผ๋ก ์ ๋ ฌํ๋ค๋ ๋ง์ด ์ด๋ ต๋ค.์ฌ๊ธฐ์ ์ฌ
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ์ผ์ผ ์จ๋ T ๋ชฉ๋ก์ด ์ฃผ์ด์ง๋ฉด ์ ๋ ฅ์ ๊ฐ ๋ ์ง์ ๋ํด ๋ ๋ฐ๋ปํ ์จ๋๊น์ง ๊ธฐ๋ค๋ ค์ผํ๋ ์ผ ์๋ฅผ ์๋ ค์ฃผ๋ ๋ชฉ๋ก์ ๋ฐํํฉ๋๋ค. ์ด๊ฒ์ด ๊ฐ๋ฅํ ๋ฏธ๋ ๋ ์ด ์์ผ๋ฉด ๋์ 0์ ์ ๋ ฅํ์ญ์์ค.์ด์ ์ ํ์๋ 42. Trapping R
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ์ฐ๊ฒฐ๋ฆฌ์คํธ๊ฐ ์ฃผ์ด์ง๋ฉด ์ง์ ๋ ธ๋ ํ์ ๋ ธ๋๋ฅผ ๊ทธ๋ฃนํํ์ฌ ํ์ ๋ ธ๋๊ฐ ๋จผ์ ์ค๋๋ก ์ฌ๊ตฌ์ฑํ์ธ์.๋ฐ๋ณต ๊ตฌ์กฐ ํ์ด๊ฐ๋จํ๊ฒ ํ์ ๋ ธ๋์ธ ๊ฒ ๋ถํฐ ๊ทธ๋ฃนํํด์ฃผ๋ฉด์ ๋จ์ ์ง์๋ ธ๋๋ค์ ์ฐ๊ฒฐํด์ฃผ๋ฉด ๋๋ค.์ฃผ์ ํ ์ ์ while๋ฌธ์ ์กฐ๊ฑด์ด
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ํ๋ฒ์ ๊ฑฐ๋๋ก ๊ฐ์ฅ ํฐ ์ด์ต์ ๋ด๋ ๊ฐ์ ๋ฐํํ์ธ์.๋ธ๋ฃจํธํฌ์ค ํ์ด -> O(n^2) ์ฌ๊ณ ํ๋ ๋ชจ๋ ์ง์ ์ ๋น๊ตํด์ ๋ต์ ๋ธ๋ค.ํ์ฌ๊น์ง์ ์ ์ ๊ฐ๊ณผ ํ์ฌ๊ฐ์ฌ์ด์ ์ฐจ๋ฅผ ์ด์ฉํ ๋ฐฉ๋ฒ O(n)Book ๋งํฌ
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ์ฐ๊ฒฐ๋ ๋ชฉ๋ก์ด ์ฃผ์ด์ง๋ฉด ์ธ์ ํ ๋ ๋ ธ๋๋ฅผ ๋ชจ๋ ๊ต์ฒดํ๊ณ ํค๋๋ฅผ ๋ฐํํฉ๋๋ค.์ฐจ๋ถํ ์๋ ์ธ์ ํ๋ ๋ ธ๋๋ผ๋ฆฌ์ ์ฐ๊ฒฐ ๋์ ์๋ก์ด ์ฐ๊ฒฐ์ ํด์ค์ผํ๋ค.1\. root์ prev์ ์์์ง์ ์ ์์ฑํ๋ค. ListNode(None)2
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ 1์์ n๊น์ง ๋ ์ด๋ธ์ด ์ง์ ๋ n ๊ฐ์ ๋ ธ๋๋ก ๊ตฌ์ฑ๋ ๋คํธ์ํฌ๊ฐ ์ ๊ณต๋ฉ๋๋ค. ๋ํ ์๊ฐ, ์ด๋ ์๊ฐ ๋ชฉ๋ก์ ์ง์ ์์ง๋ก ์ ๊ณตํฉ๋๋ค. times i = (ui, vi, wi), ์ฌ๊ธฐ์ ui๋ ์์ค ๋ ธ๋, vi๋ ๋์ ๋ ธ๋
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ๊ฐ๋ฅํ ๋ชจ๋ ์์ด์ ๋ฐํํฉ๋๋ค๋ด๊ฐ ํ์๋ ๋ฐฉ๋ฒ์ผ๋ก tmp๋ฆฌ์คํธ์ ๋งค ๋จ๊ณ์ ์ ํ๊ฐ์ ์ ์ฅํด๋๊ณ ๋ค์ ๋จ๊ณ ์งํ ์ tmp๋ฆฌ์คํธ์ ์๋ ๊ฐ๋ง์ ์ ํํ๋๋ก ํ๋ค.์ฑ ์ ๋์ ์๋ ๊ฒ์ฒ๋ผ ๋ฆฌ์คํธ์์ ์ ํํ ๊ฐ์ ์ ์ธ์ํค๋ฉด์ ์ง
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ง๋ฉด ๋ฐ๋ณต๋๋ ๋ฌธ์์์ด ๊ฐ์ฅ ๊ธด ๋ถ๋ถ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ์ฐพ์ต๋๋ค.๊ฐ๋ฅํ ๋ชจ๋ ๋ถ๋ถ ๋ฌธ์์ด์ ๋น๊ตํด๋ณด๋ ๋ธ๋ฃจํธํฌ์ค ๋ฐฉ์์ ์๋ ํ์ง๋ง ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ค.์ด ๋ฌธ์ ๋ ์๊ฐ ๋ณต์ก๋ O(n)์ ํด๊ฒฐํดํ๊ธฐ์ํด ์ฌ
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ 2-9๊น์ง์ ์ซ์๋ฅผ ํฌํจํ๋ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ฉด ์ซ์๊ฐ ๋ํ๋ผ ์์๋ ๊ฐ๋ฅํ ๋ชจ๋ ๋ฌธ์ ์กฐํฉ์ ๋ฐํํฉ๋๋ค. ์์์ ์์๋ก ๋ต๋ณ์ ๋ฐํํ์ญ์์ค.ํด๋น ๋ฌธ์ ๋ ์ซ์์ ํ ๋น๋ ๋ฌธ์๋ค์ ์ด๋ป๊ฒ ํํํ ๊ฒ์ธ์ง๋ฅผ ์๊ฐํด๋ด์ผ ํ๋ค. ๋น
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ์๊ฐํด์ผํ๋ ์ด numCourses ๊ณผ์ ์ด ์์ผ๋ฉฐ, 0๋ถํฐ numCourses-1. ๋ ์ด๋ธ์ด ์ง์ ๋์ด ์์ต๋๋ค. prerequisites i = ai, bi๋ ์๊ฐํ๋ ค๋ฉด ๋จผ์ ๊ณผ์ bi๋ฅผ ์๊ฐํด์ผ ํจ์ ๋ํ๋ ๋๋ค. ๋ชจ๋
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ํธ๋ฆฌ์ ๋ชจ๋ ๋ ธ๋๋ฅผ ๋ฃจํธ๋ก ์ ํํ ์ ์์ต๋๋ค. ๊ฐ์ฅ ๋ฎ์ ๋์ด๊ฐ ๋๊ฒ ๋ฃจํธ๋ฅผ ์ ํํด์ ๋ฐํํ์ธ์.์ฝ๊ฐ์ ์๊ฐ์ ์ ํ์ด ํ์ํ ๋ฌธ์ ์ด๋ค. ์ต์ ๋์ด๋ฅผ ๊ตฌํ๊ธฐ ์ํด ๋ฃจํธ๋ฅผ ์ ํํ๋ ๊ฒ์ด ์๋ ๋ฆฌํ ๋ ธ๋ ๋ถํฐ ์ญ์ ํด๋๊ฐ
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ์ด์ง ํธ๋ฆฌ์ ๋ฃจํธ๊ฐ ์ฃผ์ด์ง๋ฉด ๊ฒฝ๋ก์ ๊ฐ ๋ ธ๋๊ฐ ๋์ผํ ๊ฐ์ ๊ฐ๋ ๊ฐ์ฅ ๊ธด ๊ฒฝ๋ก์ ๊ธธ์ด๋ฅผ ๋ฐํํฉ๋๋ค. ์ด ๊ฒฝ๋ก๋ ๋ฃจํธ๋ฅผ ํต๊ณผํ๊ฑฐ๋ ํต๊ณผํ์ง ์์ ์ ์์ต๋๋ค. ๋ ๋ ธ๋ ์ฌ์ด์ ๊ฒฝ๋ก ๊ธธ์ด๋ ๋ ธ๋ ์ฌ์ด์ ๊ฐ์ฅ์๋ฆฌ ์๋ก ํ์
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ์ ์ ์ซ์ ๋ฐฐ์ด์ด ์ฃผ์ด์ง๊ณ ๋ฐฐ์ด์ ๋งจ ์ผ์ชฝ์์ ๋งจ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ๋ k ํฌ๊ธฐ์ ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๊ฐ ์์ต๋๋ค. ์ฌ๋ผ์ด๋ฉ ์๋์ฐ์์ k ๊ฐ์ ์ซ์ ๋ง ๋ณผ ์ ์์ต๋๋ค. ์ฌ๋ผ์ด๋ฉ ์๋์ฐ๊ฐ ํ ์์น ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋ํ ๋๋ง๋ค
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ๋ ๊ฐ์ ์ ๋ ฌ ๋ ์ฐ๊ฒฐ ๋ชฉ๋ก์ ๋ณํฉํ๊ณ ์ ๋ ฌ ๋ ๋ชฉ๋ก์ผ๋ก ๋ฐํํฉ๋๋ค. ๋ชฉ๋ก์ ์ฒ์ ๋ ๋ชฉ๋ก์ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ์ฌ ๋ง๋ค์ด์ผํฉ๋๋ค.์ฌ๊ท์ ์ผ๋ก ํธ๋ ๋ฐฉ๋ฒ๊ณผ iterativeํ๊ฒ ํธ๋ ๋ฐฉ๋ฒ์ด ์๋๋ฐ ์ฌ๊ท์ ์ผ๋ก๋ ์ดํด๊ฐ ์ ์๋์
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ๋ ๋ฐฐ์ด์ ๊ต์งํฉ์ ๊ตฌํ์ธ์.๋ธ๋ฃจํธํฌ์คํ๊ฒ ํ๋ฉฐ set๋ฅผ ์ถ๊ฐ๋ก ์ด์ฉํ ๋ฐฉ๋ฒ O(n^2)๋ฐฐ์ดํ๋๋ฅผ ์ ๋ ฌํ๊ณ ๋๋จธ์ง ํ ๋ฐฐ์ด์ ๋ฐ๋ณตํ๋ฉด์ ์ ๋ ฌ๋ ๋ฐฐ์ด์์ ๊ฐ์ ์ด์งํ์์ ์ฐพ๋ ๋ฐฉ๋ฒ O(nlogn)ํฌ ํฌ์ธํฐ๋ก ์ฐพ๋ ๋ฐฉ๋ฒ -
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ m x m ํ๋ ฌ์์ ๊ฐ์ ์ฐพ์๋ด๋ ํจ์จ์ ์ธ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํํ์์ค.๋ฌธ์ ๊ฐ ์ผ์ชฝ -> ์ค๋ฅธ์ชฝ, ์ -> ์๋์ชฝ์ผ๋ก ์ ๋ ฌ๋์ด ์์ผ๋ฏ๋ก ๋งจ ์ค๋ฅธ์ชฝ ์์์ ์์ํ๋ฉด target๋ณด๋ค ์์ ๋์ ํด ๋ ๋ชจ๋ ๋ฐ์ํ ์ ์๋ค.Book
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ํ๋ก ์คํ์ ์คํ์ผ๋ก ํ๋ฅผ ๊ตฌํํ์ธ์.ํ๋ก ์คํ ๊ตฌํํ๊ธฐํ์ฌ ๊ฐ ์์ ์๋ ๊ฒ๋ค์ ํ์์ ๋นผ์ ํ์ฌ ๊ฐ ๋ค๋ก ์ฝ์ ํ๋ค.์คํ์ผ๋ก ํ ๊ตฌํํ๊ธฐ์คํ ๋ ๊ฐ๋ฅผ ์ด์ฉํด push๋ ์ ์ฅ๋ง์ ์ํํ๋ input ์คํ์ ๋ฃ๊ณ popํ๋
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ํ๋ก ์คํ์ ์คํ์ผ๋ก ํ๋ฅผ ๊ตฌํํ์ธ์.์ ํ์ ์ธ ์ ๋ ฌ ๋ฌธ์ ์ด๋ ํ๋์ ํค ๊ฐ์ผ๋ก ์ํ ํ๋ ๋ฌธ์ ๊ฐ ์๋์๋ค.์ด๋ค ํค๊ฐ์ผ๋ก ์ํ ์ ํ ์ง๊ฐ ์ค์ํ ๋ฌธ์ ์ฌ๊ธฐ์ ํค ๊ฐ์ ๋น๊ตํ ๋ ์์๋ฅผ ๋ํ ๊ฐ์ด์๋ค ex) 1. a + b, 2
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ์์ด ๋๋ฌธ์๋ก๋ง ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ฉด ํด๋น ๋ฌธ์์ด์ ๋ํด ์ต๋ k ๊ฐ์ ์ฐ์ฐ์ ์ํ ํ ์ ์์ต๋๋ค. ํ ๋ฒ์ ์์ ์์ ๋ฌธ์์ด์ ๋ฌธ์๋ฅผ ์ ํํ๊ณ ๋ค๋ฅธ ๋๋ฌธ์ ์์ด ๋ฌธ์๋ก ๋ณ๊ฒฝํ ์ ์์ต๋๋ค. ์์ ์์ ์ ์ํ ํ ํ
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ์ซ์์ ์ฐ์ฐ์์ ๋ฌธ์์ด์ด ์ฃผ์ด์ง๋ฉด ์ซ์์ ์ฐ์ฐ์๋ฅผ ๊ทธ๋ฃนํํ๊ธฐ ์ํด ๊ฐ๋ฅํ ๋ชจ๋ ๋ฐฉ๋ฒ์ ๊ณ์ฐํ์ฌ ๊ฐ๋ฅํ ๋ชจ๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค. ์ ํจํ ์ฐ์ฐ์๋ +,-,\*์ ๋๋ค.๋ถํ ์ ๋ณต์ ์ด์ฉํด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํด์ผํ๋ค.๋ถํ ์ ๊ธฐ์ค์ ์
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ์ฌ๋์ ๋ฐฐ์ด์ด ์ ๊ณต๋ฉ๋๋ค (๋ฐ๋์ ์์๊ฐ ์๋). ๊ฐ ์ฌ๋ i = hi, ki๋ ๋์ด hi์ i ๋ฒ์งธ ์ฌ๋์ ๋ํ๋ด๋ฉฐ, ํ์ฌ ์ฌ๋ ์์ hi ์ด์์ ๋์ด๋ฅผ ๊ฐ์ง ์ฌ๋์ด ์ ํํ ki๋ช ์ด ์์ต๋๋ค. ์ ๋ ฅ ๋ฐฐ์ด people์ด
ํํฅ์ ์ ๊ทผ์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์ดํ๋ค.n์ด๋ผ๋ ๊ฐ์ ์ต์ ๊ฐฏ์๋ฅผ ๊ตฌํ๊ธฐ ์ํด์ n๋ณด๋ค ์์ ์์ ์ต์ ๊ฐฏ์๊ฐ ํ์ํ๋ค.n์์ ์ ๊ณฑ์ ๊ฐ์ ๋นผ๋ฉด (n - ์ ๊ณฑ์ ๊ฐ)์ด๋ฉฐ ์ด๋ (n - ์ ๊ณฑ์ ๊ฐ)์ ์ต์๊ฐฏ์์ +1 ํ ๊ฐ์ด n์ ์ต์๊ฐฏ์๊ฐ ๋ ์๋ ์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค.๊ทธ๋ฌ๋
๐ ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ ์ธํฐ๋ทฐ ์ฑ ์ ์ฐธ๊ณ ํ์ต๋๋ค.๋ฌธ์ ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ง๋ฉด ๋ฐ๋ณต๋๋ ๋ฌธ์์์ด ๊ฐ์ฅ ๊ธด ๋ถ๋ถ ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ์ฐพ์ต๋๋ค.์ฌ๋ผ์ด๋ฉ ์๋์ฐ์ ํฌํฌ์ธํฐ์ ๊ฐ๋ ์ ์ด์ฉํ๋ ๋ฌธ์ .๋จผ์ ๋ฌธ์์ด์ด ์ค๋ณต๋์ง ์์ ๋๊น์ง ๋ถ๋ถ๋ฌธ์์ด์ ์ถ๊ฐํ๋ค.๋ง์ฝ, ์ค๋ณต๋ ๋ฌธ์๋ฅผ ๋ง๋๋ฉด ๋ฌด์
โ ๋ฐ๊ฐ for๋ฌธ์ ์์ถ์ ๊ธธ์ด๋ฅผ ๊ฒฐ์ ํ๋ค.โ ์ด๋ for๋ฌธ์ ์์ถํ ๋ฌธ์์ด์ ๊ฒฐ์ ํ๋ค.๋ฐ๋ผ์, ์์ชฝ for๋ฌธ์์ ํ์ฌ ๋ฌธ์์ด๊ณผ ์ด์ ๋ฌธ์์ด์ด ๊ฐ์ ์ง ํ์ธํ๋๋ก ํ๋ค.๋ง์ฝ ๊ฐ๋ค๋ฉด count๋ง ์ฆ๊ฐ์ํค๊ณ ๋ค์ ์์ถ ๋ฌธ์์ด๋ก ์งํํ๋ค.์ด์ ๊ณผ ํ์ฌ์ ๋ฌธ์์ด์ด ๋ค๋ฅด๋ค๋ฉด ํ์ฌ