๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ/์•Œ๊ณ ๋ฆฌ์ฆ˜&์ž๋ฃŒ๊ตฌ์กฐ2

3. Linked List ๋งํฌ๋“œ ๋ฆฌ์ŠคํŠธ๋ž€? ํฌ์ธํ„ฐ๋กœ ์—ฐ๊ฒฐ๋œ ๋…ธ๋“œ๋“ค์˜ ์ปฌ๋ ‰์…˜์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๊ณ , ์Šคํƒ, ํ, ํ•ด์‹œ ํ…Œ์ด๋ธ”์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋‹ค. ์‹œ์ž‘ ์ง€์ ์— ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ O(1) ์ƒ์ˆ˜ ์‹œ๊ฐ„์ด ์†Œ์š”๋œ๋‹ค. ๋…ธ๋“œ ํด๋ž˜์Šค ์ฝ”๋“œ ์˜ˆ์‹œ public class Node { int val; Node next; ListNode() {} Node(int val) { this.val = val; } Node(int val, Node next) { this.val = val; this.next = next; } } ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํŒ ๐Ÿ—๏ธ Recursion๋„ ์•Œ์•„์•ผ ํ•˜๊ณ  ๊ทธ ์–ด๋ ต๋‹ค๋Š” ํฌ์ธํ„ฐ๋ฅผ ํ™œ์šฉํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ’€์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๋ฆผ์„ ๋งŽ์ด ๊ทธ๋ ค๋ณด๋ฉด์„œ ์ฝ”๋“œ๋ฅผ ๋”ฐ๋ผ๊ฐ€ ๋ณด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ๋งŒ์•ฝ Easy ๋ฌธ์ œ๋„ ๋„ˆ๋ฌด ์–ด๋ ต๊ฒŒ ๋Š๊ปด์ง„๋‹ค๋ฉด .. 2024. 3. 9.
2. Arrays ๋ฐฐ์—ด์ด๋ž€? ๊ฐ™์€ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ์œ„์น˜ํ•ด ์ธ๋ฑ์Šค๋กœ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” ์ƒ์„ฑํ•  ๋•Œ ์ •ํ•ด์ง€๋ฉฐ ํ•œ ๋ฒˆ ์ƒ์„ฑํ•˜๋ฉด ์‚ฌ์ด์ฆˆ๋Š” ๊ณ ์ •์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค. ๋งŒ์•ฝ ๋™์  ๋ฐฐ์—ด์ด ํ•„์š”ํ•  ๊ฒฝ์šฐ, ์ž๋ฐ”์—์„œ๋Š” ArrayList๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค(c++์—์„œ๋Š” vector). ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํŒ ๐Ÿ—๏ธ ๋ฐฐ์—ด์€ ๋‚˜์ค‘์— ์–ด๋ ค์šด ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ๊ธฐ๋ณธ์œผ๋กœ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐฐ์—ด ๊ด€๋ จ ์ฝ”๋“œ๋Š” ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ต์ˆ™ํ•ด์ ธ์•ผ ํ•œ๋‹ค. ๋ฐฐ์—ด๊ด€๋ จ ๋ฌธ์ œ๋Š” ์ข…๋ฅ˜๋„ ๋‹ค์–‘ํ•˜๊ณ  ๋‚œ์ด๋„๊ฐ€ ์ฒ˜์Œ ์ ‘ํ•˜๋ฉด ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ค์šด ๋ฌธ์ œ๋“ค์ด ๋งŽ๋‹ค. prefix sum, sliding window, two pointer ๊ฐ™์€ ๊ฐœ๋…์„ ๋ฐฐ์—ด ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ ์•Œ์•„๋‘๋ฉด ์ข‹๊ณ , HashMap๋„ ๋งŽ์ด ํ™œ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด์‹œ๋งต์˜ ๋ฉ”์†Œ๋“œ๋ฅผ.. 2024. 3. 2.