๐บ ๋งค์ผ ์๊ณ ๋ฆฌ์ฆ ์ธ๋ค์ผํ ๋ฆฌ์คํธํ 2018 ์นด์นด์ค ์ฝ๋ฉํ ์คํธ 1์ฐจ ์บ์ JS ๋ฌธ์ ํ์ด ๐์ง์ ๋ฌธ์ ํ๋ฌ๊ฐ๊ธฐ ์ ๋ ฅ ์บ์ํฌ๊ธฐ n๊ณผ ๋์์ด๋ฆ ๋ฐฐ์ด cities๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. 0 ๋๋ณด๊ธฐ 2018 ์นด์นด์ค ์ฝ๋ฉํ ์คํธ 1์ฐจ ๋น๋ฐ์ง๋ JS ๋ฌธ์ ํ์ด ๐์ง์ ๋ฌธ์ ํ๋ฌ๊ฐ๊ธฐ ๋ฌธ์ ์ง๋๋ ํ ๋ณ์ ๊ธธ์ด๊ฐ n์ธ ์ ์ฌ๊ฐํ ๋ฐฐ์ด ํํ๋ก, ๊ฐ ์นธ์ ๊ณต๋ฐฑ(" ") ๋๋๋ฒฝ("#") ๋ ์ข ๋ฅ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. ์ ์ฒด ์ง๋๋ ๋ ์ฅ์ ์ง๋๋ฅผ ๊ฒน์ณ์ ์ป์ ์ ์๋ค. ๊ฐ๊ฐ ์ง๋1๊ณผ ์ง๋2๋ผ๊ณ ํ์. ์ง๋1 ๋๋ ์ง๋2 ์ค ์ด๋ ํ๋๋ผ๋ ๋ฒฝ์ธ ๋ถ๋ถ์ ์ ์ฒด ์ง๋์์๋ ๋ฒฝ์ด๋ค. ์ง๋ 1๊ณผ ์ง๋ 2์์ ๋ชจ๋ ๊ณต๋ฐฑ์ธ ๋ถ๋ถ์ ์ ์ฒด ์ง๋์์๋ ๊ณต๋ฐฑ์ด๋ค. ์ง๋ 1๊ณผ ์ง๋ 2๋ ๊ฐ๊ฐ ์ ์ ๋ฐฐ์ด๋ก ์ํธํ๋์ด ์๋ค. ์ํธํ๋ ๋ฐฐ์ด์ ์ง๋์ ๊ฐ ๊ฐ๋ก์ค์์ ๋ฒฝ ๋ถ๋ถ์ 1, ๊ณต๋ฐฑ ๋ถ๋ถ์ 0์ผ๋ก ๋ถํธํํ์ ๋ ์ป์ด์ง๋ ์ด์ง์์ ํด๋นํ๋ ๊ฐ์ ๋ฐฐ์ด์ด๋ค. ๋ฌธ์ ํ์ด 1. ๊ฐ ๋ฐฐ์ด์ i๋ฒ์งธ ์ ์๋ฅผ ์ด์ง์๋ก ๋ฐ๊พธ์์ ๋ 01 ๊ณผ 11๋ผ๋ฉด ํด๋ ๋ ์ซ์๋ ์ด์ง์ 11์ด๋ค. ์ฆ, OR ์ฐ์ฐ์ ํ์ฉํ๋ฉด ๋๋ค. 2. .. ๋๋ณด๊ธฐ ๋งคํธ๋ฆญ์ค ํ์ ์ํค๊ธฐ leetcode 48. Rotate Image ๋ฌธ์ ํ์ด ๋ฌธ์ : ์ฃผ์ด์ง ํ๋ ฌ์ ์๊ณ๋ฐํฅ์ผ๋ก 90๋ ํ์ ์์ผ๋ผ. ์์ด๋์ด ํ์ ๋ ํ๋ ฌ์ ์์๋ค์ด ์๋ ์ด๋ค ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ง๊ณ ์์๋์ง ๊ด์ฐฐํด๋ณด๋ฉด ํํธ๋ฅผ ์ป์ ์ ์๋ค. ์๋ณธ |00|01|02| |10|11|12| |20|21|22| ํ์ ๋ ํ๋ ฌ |20|10|00| |21|11|01| |22|12|02| ์ฒซ๋ฒ์งธ ํ์ ์์๋ค์ ๋ชจ๋ ์ฒซ๋ฒ์งธ ์ด์์ ์๋ค. ์ด๊ณผ ํ์ด ๋ฐ๋์๋ค. ๊ฐ ํ์ ์์๋ค์ [2x, 1x, 0x] ์ญ์์ผ๋ก ์ ๋ ฌ๋์ด์๋ค. ์๊ณ ๋ฆฌ์ฆ ์๋ณธ |00|01|02| |10|11|12| |20|21|22| ์ ์น ํ๋ ฌ |00|10|20| |01|11|21| |02|12|22| ๊ทธ๋ฆฌ๊ณ ๋์ ๊ฐ ํ์ด ๋ฐ์ ๋ ํ๋ ฌ |20|10|00| |21|11|01| |22|12|02.. ๋๋ณด๊ธฐ ๋ค์์ n๋ฒ์งธ ๋ ธ๋ ์ญ์ ํ๊ธฐ ์๊ณ ๋ฆฌ์ฆ 1. ํฌ์ธํฐ hare๋ฅผ n๋งํผ ๋จผ์ ์ด๋์ํจ๋ค. 2. curr์ hare๋ฅผ ๊ฐ์ ์๋๋ก ์ด๋์ํจ๋ค. ์ด๋ curr๋ ํค๋์์ hare๋ n๋ฒ์งธ ๋ ธ๋์์ ์ถ๋ฐํ๋ค. 3. curr๊ณผ hare์ฌ์ด์๋ n๊ฐ์ ๋ ธ๋๊ฐ ์์ผ๋ฏ๋ก, hare๊ฐ ๋ค์์๋ถํฐ 1๋ฒ์งธ์ ์์ ๋ curr๋ ๋ค์์๋ถํฐ n+1๋ฒ์งธ ๋ ธ๋์ ์๋ค. ๊ทธ๋ฌ๋ฏ๋ก curr.next๊ฐ ๋ค์๋ค์ ๋ ธ๋๋ฅผ ๊ฐ๋ฅดํค๋๋ก ์์ ํ์ฌ n๋ฒ์งธ ๋ ธ๋๋ฅผ ์ญ์ ํ ์ ์๋ค. ์ฃ์ง ์ผ์ด์ค n์ด ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๊ธธ์ด์ ๊ฐ์๋๊ฐ ์ฃ์ง์ผ์ด์ค์ด๋ค. curr์ ๋ค์ ๋ ธ๋๋ฅผ ์ญ์ ํ๋ ๊ฒ์ด ์๋๋ผ, ๋ฆฌ์คํธ์ ์ฒซ๋ฒ์งธ ๋ ธ๋๋ฅผ ์ญ์ ํด์ผํด์ผํ๋ค. ๊ธธ์ด๊ฐ n์ธ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ํค๋์์ n๋ฒ ๋จ์ด์ง ๊ณณ์ null์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก hare๊ฐ null๊ฐ์ธ์ง์ ๋ฐ๋ผ ์ด๋ฅผ ๊ตฌ๋ถํ ์ ์๋ค. ๋ณต์ก๋ ๋ถ์ ์๊ฐ๋ณต์ก.. ๋๋ณด๊ธฐ ์๋ก ๋ค๋ฅธ ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ ๊ต์ฐจ์ ์ฐพ๊ธฐ 2 leetcode 160. Intersection of Two Linked Lists ๋ฌธ์ ํ์ด. ๋ฌธ์ : ์๋ก ๋ค๋ฅธ ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ๊ฐ ์ฃผ์ด์ก์ ๋, ์ฒซ ๊ต์ฐจ์ ์ ์ฐพ์๋ผ. ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๋ ธ๋ ์ ์ฐจ์ด 1. ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๊ธธ์ด๋ฅผ ์ฐ๋ค. 2. ๊ธธ์ด์ฐจ์ด๊ฐ ์๋ค๋ฉด ๊ทธ๋งํผ ๋ ์ค ๋ ๊ธด ๋ฆฌ์คํธ์ ํฌ์ธํฐ๋ฅผ ์คํตํ๋ค. 3. ๊ธธ์ด๊ฐ ๊ฐ์ ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ํฌ์ธํฐ๋ฅผ ๊ฐ์ ์๋๋ก ์ด๋์ํค๋ฉฐ ๋น๊ตํ์๋, ์๋ก ๊ฐ์ ๋ ธ๋๊ฐ ์ฒซ ๊ต์ฐจ์ ์ด๋ค. Time Complexity: O(A+B) Space Complexity: O(1) ์ด ๋ฐฉ๋ฒ์ผ๋ก ํต๊ณผ๋ฅผ ํ์ผ๋ ์ฒซ ๊ต์ฐจ์ ๋ฅผ ์ง๋ ํ ๋ ธ๋๊ฐ ์๋ก ๋ค๋ฅผ ๊ฒฝ์ฐ๋ฅผ ํฌํจํ์ง ๋ชปํ๋ค. ๋๋ณด๊ธฐ ์๋ก ๋ค๋ฅธ ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ๊ต์ฐจ์ ์ฐพ๊ธฐ leetcode 160. Intersection of Two Linked Lists ๋ฌธ์ ํ์ด. ๋ฌธ์ : ์๋ก ๋ค๋ฅธ ๋ ์ฐ๊ฒฐ๋ฆฌ์คํธ๊ฐ ์ฃผ์ด์ก์ ๋, ์ฒซ ๊ต์ฐจ์ ์ ์ฐพ์๋ผ. Hash Set 1. A ๋ฆฌ์คํธ๋ฅผ ๋จผ์ ์ํํ๋ฉฐ hash set์ ๋ ธ๋๋ค์ ์ ์ฅํ๋ค. 2. B ๋ฆฌ์คํธ ์ํํ๋ฉฐ ๋ ธ๋๋ค์ด ์ด๋ฏธ hash set์ ์ ์ฅ๋์ด์๋์ง ํ์ธํ๋ค. ์ด๋ฏธ ์ ์ฅ๋์ด ์๋ค๋ฉด ํด๋น ๋ ธ๋๋ฅผ ๋ฐํํ๋ค. 3. ๋ฌด์ฌํ B๋ฆฌ์คํธ ์ํ๋ฅผ ๋ง์ง๋ง ๋ ธ๋๊น์ง ๋ง์ณค๋ค๋ฉด, ๊ต์ฐจ๋๋ ๋ ธ๋๊ฐ ์๋ค๋ ๋ป์ด๋ฏ๋ก null์ ๋ฐํํ๋ค. Floyd's Tortoise and Hare algorithm ์ด ๋ฌธ์ ๋ํ ํ ๋ผ์ ๊ฑฐ๋ถ์ด ์๊ณ ๋ฆฌ์ฆ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉ์ O(1)์ผ๋ก ์ค์ฌ์ค ์ ์๋ค. Time Complexity: O(N) Space Complexity: O.. ๋๋ณด๊ธฐ ์ฐ๊ฒฐ๋ฆฌ์คํธ ์ฌ์ดํด์ด ์์๋๋ ๋ ธ๋ ์ฐพ๊ธฐ leetcode 142. Linked List Cycle II ๋ฌธ์ ํ์ด ๋ฌธ์ : ์ฃผ์ด์ง ์ฐ๊ฒฐ๋ฆฌ์คํธ์์ ์ฌ์ดํด์ด ์๋ค๋ฉด null์, ์๋ค๋ฉด ์ฌ์ดํด์ด ์์๋๋ ๋ ธ๋๋ฅผ ๋ฐํํ๋ผ. 1. ์ฃผ์ด์ง ๋ ธ๋๋ฅผ Hash Set์ ์ถ๊ฐํ๋ฉด ์ํํ๋ค. 2. ์ด๋ฏธ Hash Set์ ์๋ ๋ ธ๋๋ฅผ ๋ง๋๋ฉด ์ฌ์ดํด์ด ์์๋ ๊ฒ์ด๋ฏ๋ก ํด๋น ๋ ธ๋๋ฅผ ๋ฐํํ๋ค. 3. ๋ฌด์ฌํ ์ํ๋ฅผ ๋๋์ผ๋ฉด ์ฌ์ดํด์ด ์๋ ๊ฒ ์ด๋ฏ๋ก, null์ ๋ฐํํ๋ค. 141๋ฒ ์ฌ์ดํด ๊ฐ์งํ๊ธฐ ๋ฌธ์ ์์ ํ์ฉํ ํฌ ํฌ์ธํฐ ํ ํฌ๋์ ํ์ฉํ์ฌ ๊ณต๊ฐ์ O(1)๋งํผ๋ง ์ฌ์ฉํ ์ ์๋ค. leetcode 141. Linked List Cycle ์ฌ์ดํด ๊ฐ์งํ๊ธฐ leetcode 141. Linked List Cycle ๋ฌธ์ ํ์ด ๋ฌธ์ : ์ฃผ์ด์ง ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ์ฌ์ดํด์ด ์๋ค๋ฉด true๋ฅผ ์๋ค๋ฉด .. ๋๋ณด๊ธฐ ์ฌ์ดํด ๊ฐ์งํ๊ธฐ leetcode 141. Linked List Cycle ๋ฌธ์ ํ์ด ๋ฌธ์ : ์ฃผ์ด์ง ์ฐ๊ฒฐ๋ฆฌ์คํธ์ ์ฌ์ดํด์ด ์๋ค๋ฉด true๋ฅผ ์๋ค๋ฉด false๋ฅผ ๋ฐํํ๋ผ Hash Set 1. ๊ฐ ๋ ธ๋๋ฅผ set์ ์ถ๊ฐํด๊ฐ๋ฉฐ ์ํํ๋ค. 2. ๋ค์์ ์ํํ ๋ ธ๋๊ฐ ์ด๋ฏธ set์ ๋ค์ด์๋ค๋ฉด true๋ฅผ ๋ฐํ. 3. ์ํ๋ฅผ ๋ฌด์ฌํ ๋ง์ณค๋ค๋ฉด ์ฌ์ดํด์ด ์๋ ๊ฒ์ด๋ฏ๋ก false๋ฅผ ๋ฐํ. ๋ชจ๋ ๋ ธ๋๋ฅผ set์ ์ ์ฅํ๋ ค๋ฉด O(N)๊ณต๊ฐ์ด ํ์ํ๋ค. set์ ๋ ธ๋๋ฅผ ์ ์ฅํ๋ ๊ฒ ๋์ , ๋ ธ๋์ val๊ฐ์ ์ด๋ฏธ ๋ฐฉ๋ฌธํ์์ ํ์ํ๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋ ์์๋ค. Two Pointer ํฌ ํฌ์ธํฐ ํ ํฌ๋์ ํ์ฉํด์๋ ๊ณต๊ฐ๋ณต์ก๋๋ฅผ O(1)์ผ๋ก ์ ํํ ์ ์๋ค. ํฌ ํฌ์ธํฐ ํ ํฌ๋์ ํ ํฌ์ธํฐ๋ ๋ ๋น ๋ฅด๊ฒ ๋ ๋ค๋ฅธ ํฌ์ธํฐ๋ ๋ ๋๋ฆฌ๊ฒ ์์ง์ด๋๋กํ๋ ํ ํฌ๋์ ๋งํ๋ค. .. ๋๋ณด๊ธฐ ์ด์ 1 2 3 4 5 ๋ค์