๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์ฝ”๋”ฉํ…Œ์ŠคํŠธ/Journey

A Journey to Algorithm Mastery - 3 (LeetCode)

by moon101 2024. 1. 13.

๐ŸŒทSolved 100 LeetCode Problems  

2024.01.13 ๊ธฐ์ค€ ๋ฆฌํŠธ์ฝ”๋“œ ํ”„๋กœํŒŒ์ผ

 

 

๊ธฐ์กด์—๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค๋‚˜ ๋ฐฑ์ค€์—์„œ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋Š”๋ฐ ์ง€๊ธˆ์€ LeetCode์—์„œ๋งŒ ๋ฌธ์ œ๋ฅผ ํ’€๊ณ ์žˆ๋‹ค. 

๋ฆฌํŠธ์ฝ”๋“œ๊ฐ€ ํ™•์‹คํžˆ UI๋„ ์ž˜๋˜์–ด ์žˆ๊ณ  solution ๋ถ€๋ถ„๋„ ์ฐธ๊ณ ํ•˜๊ธฐ ์‰ฝ๊ณ  ํ‹€๋ฆฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋„ ๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ๋” ํšจ์œจ์ ์œผ๋กœ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฆฌํŠธ์ฝ”๋“œ๋Š” ์ฐธ๊ณ ํ•  ๋งŒํ•œ ์œ ํŠœ๋ธŒ ์˜์ƒ๋„ ๋งŽ๊ณ  ์ฃผ์ œ๋ณ„๋กœ ์ฐพ์•„์„œ ํ’€์–ด๋ณผ ์ˆ˜๋„ ์žˆ์–ด์„œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ฆฌํŠธ์ฝ”๋“œ๋กœ ํ–ˆ์œผ๋ฉด ๋” ์ข‹์•˜์„ ๊ฒƒ ๊ฐ™๋‹ค. ์•„์ง ๊ธฐ์—… ์ฝ”๋”ฉํ…Œ์ŠคํŠธ์— ๋„์ „ํ•˜๊ธฐ์—๋Š” ์‹ค๋ ฅ์ด ๋ถ€์กฑํ•˜์ง€๋งŒ ๊ทธ๋ž˜๋„ ์ด์ „๋ณด๋‹ค๋Š” ์กฐ๊ธˆ ๋‚˜์•„์กŒ๊ณ  ๋ฆฌํŠธ์ฝ”๋“œ ๋ฌธ์ œ๋„ 100๊ฐœ๋‚˜ ํ’€์—ˆ๋‹ค. ํ˜„์žฌ ๋‚ด๊ฐ€ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ 

 

1๏ธโƒฃ NeetCode.io ๋กœ๋“œ๋งต ์ฐธ๊ณ 

์ฃผ์ œ๋ณ„๋กœ ๊ด€๋ จ ๋ฌธ์ œ๋“ค์ด ๋‚˜์™€์žˆ๊ณ  ๋ฌธ์ œ๋งˆ๋‹ค ์œ ํŠœ๋ธŒ ์˜์ƒ์ด ์žˆ์–ด์„œ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์„ ๋นจ๋ฆฌ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ๋‹ค

NeetCode 150์„ ๊ธฐ์ค€์œผ๋กœ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ๊ณ  ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์€ NeetCode All์—์„œ ์ถ”๊ฐ€๋กœ ๋ฌธ์ œ๋ฅผ ๋” ํ’€์–ด๋ณธ๋‹ค.

 

๊ฐ€์ž…ํ•˜๊ณ  ํ‘ผ ๋ฌธ์ œ๋ฅผ ์ฒดํฌํ•˜๋ฉด ์ด๋ ‡๊ฒŒ ์ง„ํ–‰ํ˜„ํ™ฉ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

https://www.youtube.com/@NeetCode

 

NeetCode

Current NEET and ex-Google SWE, also I love teaching! N.E.E.T. = (Not in education, employment or training) Preparing for coding interviews? Checkout neetcode.io

www.youtube.com

 

 

2๏ธโƒฃ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋Š” Take U Forward

NeetCode์˜ ๋ฌธ์ œ ์„ค๋ช…๋„ ์ข‹์ง€๋งŒ ์ •๋ง ๋‚˜๋Š” ๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ํ•˜๋‚˜ํ•˜๋‚˜ ๊ฐ€๋ฅด์ณ ์ค˜์•ผํ•˜๋Š” ์ˆ˜์ค€์ด๊ธฐ ๋•Œ๋ฌธ์— ์ž˜ ์ดํ•ด๊ฐ€ ์•ˆ๋ ๋•Œ๋Š” Take U Forward ์„ค๋ช…์„ ์ฐธ๊ณ ํ•œ๋‹ค. Brute Force -> Better -> Optimal solution์œผ๋กœ ๋‹จ๊ณ„๋ณ„๋กœ ์„ค๋ช…ํ•ด์ฃผ๊ณ  ๋ฌธ์ œ์— ๋Œ€ํ•œ intutition์ด ๊ธธ๋Ÿฌ์ค˜์„œ ๋„์›€์ด ์ •๋ง ๋งŽ์ด๋œ๋‹ค. 

 

 

3๏ธโƒฃ Java solution ์ฐธ๊ณ ๋Š” Eric Programming

๋‚˜๋Š” ์ž๋ฐ”๋กœ ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ์žˆ๋Š”๋ฐ ๋Œ€๋‹ค์ˆ˜์˜ ์†”๋ฃจ์…˜์€ ํŒŒ์ด์ฌ์ด๋‚˜ C++์ด๋ผ์„œ ์ž˜ ์ž‘์„ฑ๋œ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ๋ณด๊ณ  ์‹ถ์—ˆ๋‹ค. Eric Programming ์œ ํŠœ๋ธŒ์ธ๋ฐ ์ด ๋ถ„์ด ์“ด ์ž๋ฐ”๋กœ ๋œ LeetCode solution์„ ๊นƒํ—ˆ๋ธŒ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ๋‚ด ์†”๋ฃจ์…˜์ด ์ข€ ์ง€์ €๋ถ„ํ•œ ๊ฒƒ ๊ฐ™์•„ ์ข€ ๋” ๊นจ๋—ํ•œ ์ฝ”๋“œ๋ฅผ ์ฐพ์•„๋ณด๊ณ  ์‹ถ์„ ๋•Œ ์ฐธ๊ณ ํ•œ๋‹ค. 

 

 

4๏ธโƒฃ ์ฝ”๋“œ ํŒŒ์•…์€ Dry Run or Hand Tracing์œผ๋กœ

์ฝ”ํ…Œ๋ฅผ ์ค€๋น„ํ•˜๋ฉด์„œ ์ฝ”๋“œ์˜ ํ๋ฆ„์„ ๋”ฐ๋ผ๊ฐ€๊ฑฐ๋‚˜ edge cases๋ฅผ ํŒŒ์•…ํ•˜๋Š”๊ฒŒ ๋„ˆ๋ฌด ์–ด๋ ค์› ๋‹ค. ๊ทธ๋ž˜์„œ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ๋„ ๋Š๋ฆฌ๊ณ  ์—๋Ÿฌ๊ฐ€ ์ƒ๊ฒผ์„ ๋•Œ ์™œ ๊ทธ๋Ÿฐ์ง€ ์ฐพ๋Š” ๊ฒƒ๋„ ์˜ค๋ž˜๊ฑธ๋ ธ๋Š”๋ฐ, ๋ฌธ์ œ ํ’€๊ณ  ๋…ธํŠธ์—๋‹ค๊ฐ€ hand tracing์„ ๋ช‡๋ฒˆ ํ•ด๋ณด๋ฉด์„œ ์ฝ”๋“œ ํ๋ฆ„์„ ์ฝ๋Š” ์†๋„๊ฐ€ ์ข€ ๋” ๋นจ๋ผ์กŒ๋‹ค. ์•„๋ž˜ ์œ ํŠธ๋ธŒ ๋™์˜์ƒ์—์„œ ๋‚˜์˜จ ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ’์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š”์ง€ ํ•˜๋‚˜ํ•˜๋‚˜ ์†์œผ๋กœ ์ ์–ด๊ฐ€๋ฉด์„œ ๋”ฐ๋ผ๊ฐ€๋Š” ๊ฑด๋ฐ ์ธํ…”๋ฆฌ์ œ์ด์—์„œ ๋””๋ฒ„๊น… ๋Œ๋ฆฌ๋Š” ๊ฒƒ ๋ณด๋‹ค ๋„์›€์ด ๋” ๋งŽ์ด ๋ฌ๋‹ค. ์—ฌ๋Ÿฌ๋ฒˆ ํ•˜๋‹ค๋ณด๋ฉด ๋ฌธ์ œ ํ’€ ๋•Œ for๋ฌธ, while๋ฌธ ์ž‘์„ฑ์— ์ต์ˆ™ํ•ด ์ง„๋‹ค. 

 

https://www.youtube.com/watch?v=TZss5ukwN8s

 

 

5๏ธโƒฃ Last but Not Least ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ Be Consistent ๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅ

๊พธ์ค€ํ•จ, ์‚ฌ์‹ค ์ด๊ฒŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฑฐ ์•„๋‹๊นŒ?? Competitive Programming์„ ์ž˜ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ๊ณตํ†ต์ ์œผ๋กœ ํ•˜๋Š” ์–˜๊ธฐ๋Š” ์‹ค๋ ฅ์ด ๋Š˜๋ ค๋ฉด ๊พธ์ค€ํžˆ ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค. ์ฝ”ํ…Œ ์ค€๋น„๋ฅผ ํ•˜๋ฉด์„œ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค ๋งŒํผ ๋‹จ๊ธฐ๊ฐ„์— ์‹ค๋ ฅ์ด ๋Š˜์ง€ ์•Š์•„์„œ ์šฐ์šธํ•˜๊ณ  ์ž์ฑ…ํ•  ๋•Œ๋„ ๋งŽ์•˜๋Š”๋ฐ, ๊ทธ๋Ÿผ ์˜คํžˆ๋ ค ๋ฌธ์ œ ํ’€๊ธฐ๊ฐ€ ๋” ์‹ซ์–ด์ง€๊ณ , ์•ˆํ•˜๋‹ˆ๊นŒ ์‹ค๋ ฅ์€ ๋” ๋„ํƒœ๋˜๊ณ .. ๊ฒฐ๊ตญ ๋ณธ์ธํ•œํ…Œ ๋งˆ์ด๋„ˆ์Šค๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋ƒฅ ๋‚˜๋Š” ๋‚จ๋“ค ํ•œ์‹œ๊ฐ„ํ•  ๋•Œ ๋‘์„ธ์‹œ๊ฐ„ ํ•ด์•ผ ๋˜๋Š” ์‚ฌ๋žŒ์ด๊ตฌ๋‚˜ํ•˜๊ณ ... ์ด์ œ ๋ฆฌํŠธ์ฝ”๋“œ ๋ฌธ์ œ 100๊ฐœ ํ’€์—ˆ์œผ๋‹ˆ๊นŒ ์ข€ ๋” ํ’€์–ด์„œ 450๊ฐœ๊นŒ์ง€ ํ’€์–ด๋ณด๊ณ  ์‹ถ๋‹ค. ์–ด์ฐŒ๋๋“  ๋ชปํ•ด๋„ ๊พธ์ค€ํžˆ ํ•˜๋‹ค๋ณด๋ฉด ์˜ˆ์ „๋ณด๋‹ค๋Š” ๋‚˜์•„์ง€๋Š” ๊ฑด ํ™•์‹คํ•˜๋‹ค. ์ตœ๊ทผ์— ํšŒ์‚ฌ์ฝ”๋“œ๋ฅผ ๋ณด๋Š”๋ฐ ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋ˆˆ์— ์ž˜ ๋“ค์–ด์™€์„œ '์™€ ๋‚˜ ๊ฐ‘์ž๊ธฐ ์™œ์ด๋ ‡๊ฒŒ ์ž˜ํ•˜์ง€??' ํ•˜๊ณ  ๊ฐํƒ„ํ–ˆ๋Š”๋ฐ... ์ง์žฅ ๋™๋ฃŒ๋“ค์€ ์ด๋ฏธ ๋ฒŒ์จ ๊ทธ์ •๋„ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค๋Š”... ๊ทธ๋Ÿฐ ์ผ๋„ ์žˆ์ง€๋งŒ!!! ๊ณผ๊ฑฐ์˜ ๋‚˜๋ณด๋‹ค ์ž˜ํ•˜๋Š”๊ฑด ์‚ฌ์‹ค์ด๋‹ˆ๊นŒ ๊ณ„์† ํ•ด๋ด์•ผ์ง€. 

 

 

โ˜ƒ๏ธ To Be Continued... โ˜ƒ๏ธ

 
 
 
 

๋Œ“๊ธ€