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

์ฝ”๋”ฉํ…Œ์ŠคํŠธ5

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.
A Journey to Algorithm Mastery - 3 (LeetCode) ๐ŸŒทSolved 100 LeetCode Problems ๊ธฐ์กด์—๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค๋‚˜ ๋ฐฑ์ค€์—์„œ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋Š”๋ฐ ์ง€๊ธˆ์€ LeetCode์—์„œ๋งŒ ๋ฌธ์ œ๋ฅผ ํ’€๊ณ ์žˆ๋‹ค. ๋ฆฌํŠธ์ฝ”๋“œ๊ฐ€ ํ™•์‹คํžˆ UI๋„ ์ž˜๋˜์–ด ์žˆ๊ณ  solution ๋ถ€๋ถ„๋„ ์ฐธ๊ณ ํ•˜๊ธฐ ์‰ฝ๊ณ  ํ‹€๋ฆฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋„ ๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ๋” ํšจ์œจ์ ์œผ๋กœ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฆฌํŠธ์ฝ”๋“œ๋Š” ์ฐธ๊ณ ํ•  ๋งŒํ•œ ์œ ํŠœ๋ธŒ ์˜์ƒ๋„ ๋งŽ๊ณ  ์ฃผ์ œ๋ณ„๋กœ ์ฐพ์•„์„œ ํ’€์–ด๋ณผ ์ˆ˜๋„ ์žˆ์–ด์„œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฆฌํŠธ์ฝ”๋“œ๋กœ ํ–ˆ์œผ๋ฉด ๋” ์ข‹์•˜์„ ๊ฒƒ ๊ฐ™๋‹ค. ์•„์ง ๊ธฐ์—… ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์— ๋„์ „ํ•˜๊ธฐ์—๋Š” ์‹ค๋ ฅ์ด ๋ถ€์กฑํ•˜์ง€๋งŒ ๊ทธ๋ž˜๋„ ์ด์ „๋ณด๋‹ค๋Š” ์กฐ๊ธˆ ๋‚˜์•„์กŒ๊ณ  ๋ฆฌํŠธ์ฝ”๋“œ ๋ฌธ์ œ๋„ 100๊ฐœ๋‚˜ ํ’€์—ˆ๋‹ค. ํ˜„์žฌ ๋‚ด๊ฐ€ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ 1๏ธโƒฃ NeetCode.io ๋กœ๋“œ๋งต ์ฐธ๊ณ  ์ฃผ์ œ๋ณ„๋กœ ๊ด€๋ จ ๋ฌธ์ œ๋“ค์ด ๋‚˜์™€์žˆ๊ณ  ๋ฌธ์ œ๋งˆ๋‹ค ์œ ํŠœ๋ธŒ ์˜์ƒ์ด ์žˆ์–ด์„œ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์„ ๋นจ๋ฆฌ .. 2024. 1. 13.
A Journey to Algorithm Mastery - 2 (PCCP ๋ถˆํ•ฉ๊ฒฉ) ๐ŸŒทํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค 2023 Dev-Matching A Journey to Algorithm Mastery - 1์„ ์ž‘์„ฑํ•œ ๋’ค๋กœ ๋‚˜๋ฆ„ ๊พธ์ค€ํžˆ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๊ฐ€๋ฉด์„œ ์ค‘๊ฐ„ ์ค‘๊ฐ„ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์ž๋ฃŒ๊ตฌ์กฐ๋„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์‹ค๋ ฅ์ด ๋Š˜์–ด๊ฐ„๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ 0๋ ˆ๋ฒจ์ธ '์ฝ”๋”ฉ ๊ธฐ์ดˆ ํŠธ๋ ˆ์ด๋‹' ํ•˜๊ณ  '์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ž…๋ฌธ' ์œ„์ฃผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. ์˜ˆ์ „์— ๋น„ํ•ด ์ˆœ์œ„๋„ ๋งŽ์ด ์˜ค๋ฅด๊ณ  ๋ฌธ์ œ๋„ 200๊ฐœ ๋„˜๊ฒŒ ํ’€๊ณ  ์š”์ฆ˜์—๋Š” ๋ฐฑํŠธ๋ž˜ํ‚น, ์žฌ๊ท€ ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋„ ๊ฐ™์ด ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์˜ค๋Š˜ PCCP, ์ฝ”๋”ฉ์—ญ๋Ÿ‰์ธ์ฆ ์‹œํ—˜์„ ๋ดค๋‹ค. 2์‹œ๊ฐ„ ๋™์•ˆ ์ด 4๋ฌธ์ œ๊ฐ€ ์ฃผ์–ด์กŒ๊ณ  ๋‚˜๋Š” for ๋ฌธ๊ณผ if ๋ฌธ์„ ํ™œ์šฉํ•ด์„œ ํ’€์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฌธ์ œ๋ฅผ ์•ฝ 1์‹œ๊ฐ„ ์ •๋„ ๊ฑธ๋ ค์„œ ํ’€๊ณ  ๋‚˜๋จธ์ง€ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋ณด๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ ๋„์ €ํžˆ ํ’€์ด๋ฐฉ๋ฒ•์ด ์ƒ๊ฐ์ด ์•ˆ๋‚˜์„œ 4๋ฌธ์ œ ์ค‘ 1๋ฌธ์ œ๋งŒ ํ’€์–ด์„œ.. 2023. 9. 10.
A Journey to Algorithm Mastery - 1 (์ค‘ํ•™๊ต ์ˆ˜ํ•™ ๊ต์žฌ) ๐ŸŒท ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ํ•˜๋Š”๋ฐ ์ค‘ํ•™๊ต ์ˆ˜ํ•™์ด ๋„์›€์ด ๋˜๋Š”๊ฐ€? ๋งŽ์€ ํšŒ์‚ฌ๋“ค์ด 1์ฐจ ๊ด€๋ฌธ์œผ๋กœ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ๋ฅผ ๋ณด๊ธฐ๋•Œ๋ฌธ์— ์ฝ”ํ…Œ๋ฅผ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•˜๋ฉด ๋ฉด์ ‘์˜ ๊ธฐํšŒ์กฐ์ฐจ ์—†์„ ์ˆ˜๋„ ์žˆ๊ณ  ์ข‹์€ ํšŒ์‚ฌ๋“ค์€ ๊ฑฐ์˜ ์ฝ”ํ…Œ๊ฐ€ ํ•„์ˆ˜๋‹ค. ๊ทธ๋ž˜์„œ ๊ตญ๋น„๊ต์œก์ด ๋๋‚  ๋•Œ์ฏค ๋‹ค๋“ค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„๋ฅผ ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๊ณ , ๋‚˜ ์—ญ์‹œ๋„ 2022๋…„ 12์›”์— ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ์ฝ”๋”ฉ ๋ฌธ์ œ๋ฅผ ํ’€๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๊ฐ•์‚ฌ๋‹˜์ด ์ฝ”ํ…Œ ์–ธ์–ด๋กœ ํŒŒ์ด์ฌ์„ ์ถ”์ฒœํ•ด์ฃผ์…”์„œ ์šฐ์„  ํŒŒ์ด์ฌ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ž…๋ฌธ์˜ ๊ฒฝ์šฐ ํ•˜๋ฃจ์— 4๋ฌธ์ œ์”ฉ ๋งค์ผ ํ’€๋ฉด 25์ผ, ์•ฝ ํ•œ๋‹ฌ๋งŒ์— ๋‹ค ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ถ„๋Ÿ‰์ด์—ฌ์„œ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ต์ง€ ์•Š์„ ๊ฑฐ๋ผ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ Day2 ๋ถ„์ˆ˜์˜ ๋ง์…ˆ๋ถ€ํ„ฐ ํ’€์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค... ๋ฌธ์ œ์—์„œ ๋‘ ๋ถ„์ˆ˜๋ฅผ ๋”ํ•œ ๊ฐ’์„ ๊ธฐ์•ฝ ๋ถ„์ˆ˜๋กœ ๋‚˜ํƒ€๋ƒˆ์„ ๋•Œ ๋ถ„์ž์™€ ๋ถ„๋ชจ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด์€ ๋ฐฐ์—ด์„ ๋ฆฌํ„ดํ•˜๋ผ๊ณ  ํ•˜๋Š”๋ฐ, ๊ธฐ์•ฝ .. 2023. 6. 4.