์ฝ”๋”ฉ ์ธํ„ฐ๋ทฐ๋ฅผ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์น˜ํŠธ์‹œํŠธ: ๋ฆฌํŠธ์ฝ”๋“œLeetCode ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋ฐฐ์šฐ๋Š” ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ

ยท ์ œ์ดํŽ
ะญะปะตะบั‚ั€ะพะฝะฝะฐั ะบะฝั–ะณะฐ
460
ะกั‚ะฐั€ะพะฝะบั–

ะŸั€ะฐ ะณัั‚ัƒ ัะปะตะบั‚ั€ะพะฝะฝัƒัŽ ะบะฝั–ะณัƒ

๋ฆฌํŠธ์ฝ”๋“œLeetCode๋กœ ์‹ค์Šตํ•˜๋ฉฐ ์ฝ”๋”ฉ ์ธํ„ฐ๋ทฐ๋ฅผ ๋Œ€๋น„ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ฐธ๊ณ ์„œ


์‹œํ—˜๊ณผ ๋ฉด์ ‘์ด ๋ชฉ์ ์ด๋ผ๋ฉด ๋‘๊บผ์šด ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„œ์ ๋ณด๋‹ค๋Š” ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ํ’€์–ด๋ณด๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๋ฐฉ์‹์—๋Š” ๋…ธํ•˜์šฐ๊ฐ€ ์žˆ๊ธฐ ๋งˆ๋ จ์ด๊ณ , ๊นƒํ—ˆ๋ธŒ์—์„œ ์Šคํƒ€๋ฅผ 10๋งŒ ๊ฐœ ๋ฐ›์€ ์ €์ž ํ‘ธ๋‘ฅ๋ผ์ด์˜ ๋…ธํ•˜์šฐ๋ฅผ ์ด ์ฑ…์—์„œ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ช‡์ฒœ ๊ฐœ์˜ ๋ฌธ์ œ๋ฅผ ๋‹ค ํ’€์–ด๋ณผ ์ˆ˜๋Š” ์—†์œผ๋‹ˆ ๋ฌธ์ œ๋ฅผ ์œ ํ˜•๋ณ„๋กœ ๋‚˜๋ˆ„๊ณ  ๊ณตํ†ต๋˜๋Š” ํ”„๋ ˆ์ž„์„ ์ตํž™๋‹ˆ๋‹ค. ์ด์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ํ•ด๋ฒ•์„ ์ตํžˆ๋ฉด ํ•˜๋‚˜์˜ ํ•ด๋ฒ•์œผ๋กœ๋„ ์ˆ˜์ฒœ ๊ฐ€์ง€ ๋ฌธ์ œ์— ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


1์žฅ์—์„œ๋Š” ๋™์  ๊ณ„ํš๋ฒ•, ์—ญ์ถ”์ , ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰, ํˆฌ ํฌ์ธํ„ฐ, ์Šฌ๋ผ์ด๋”ฉ ์œˆ๋„ ๋“ฑ์„ ํฌํ•จํ•ด ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ํ•ต์‹ฌ๊ณผ ๋ฌธ์ œ ํ•ด๊ฒฐ์˜ ํ”„๋ ˆ์ž„์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. 2์žฅ์—์„œ๋Š” ๋™์  ๊ณ„ํš๋ฒ•์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์‚ฌ๊ณ ์˜ ํ”„๋ ˆ์ž„์„ ์‚ฌ์šฉํ•ด ์ •๊ทœ ํ‘œํ˜„์‹(regular expression), ๋ฐฐ๋‚ญ ๋ฌธ์ œ ๋“ฑ ๊ธฐ๋ณธ์ ์ธ ๋™์  ๊ณ„ํš๋ฒ• ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ƒํƒœ ์ „์ด ๋ฐฉ์ •์‹์„ ์ž‘์„ฑํ•˜๊ณ , ์ƒํƒœ ์••์ถ•์„ ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋“ฑ์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.


3์žฅ์€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ์™€ ๊ด€๋ จํ•˜์—ฌ ์ด์ง„ ํŠธ๋ฆฌ, LRU, LFU ๋“ฑ ๋ฉด์ ‘ ์‹œ ์ž์ฃผ ์ ‘ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๊ทธ ์›๋ฆฌ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. 4์žฅ์€ ์—ญ์ถ”์  ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋“ฑ์˜ ํ•ต์‹ฌ ๋น„๋ฒ•๊ณผ ํ”„๋ ˆ์ž„์„ ์ž์„ธํžˆ ์•Œ์•„๋ด…๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ 5์žฅ์€ ์•ž์—์„œ ๋ฐฐ์šด ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์„ ์‘์šฉํ•˜์—ฌ ๋ฉด์ ‘์— ์ž์ฃผ ๋‚˜์˜ค๋Š” ๋ฌธ์ œ 18๊ฐ€์ง€๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ๊ฒฐํ•ฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ•ด๋ฒ•์„ ์†Œ๊ฐœํ•ฉ๋‹ˆ๋‹ค.


๋ฆฌํŠธ์ฝ”๋“œ(LeetCode)๋Š” ์‚ฌ์šฉ์ž๋„ ๋งŽ์„๋ฟ๋”๋Ÿฌ ๋ฌธ์ œ๋„ 2,000๊ฐœ ์ด์ƒ ๋ณด์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฑ…์€ ๊ทธ์ค‘์—์„œ ํ…Œ์ŠคํŠธ์— ์ž์ฃผ ์ถœ์ œ๋˜๋Š” ๋ฌธ์ œ๋งŒ์„ ์—„์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ๋ณธ ํ•œ๊ตญ์–ดํŒ์€ ๋ฆฌํŠธ์ฝ”๋“œ๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋…์ž๋ฅผ ์œ„ํ•ด ๋ฆฌํŠธ์ฝ”๋“œ ์‚ฌ์ดํŠธ ์‚ฌ์šฉ๋ฒ•์„ ๋ถ€๋ก์œผ๋กœ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ์— ์ž์ฃผ ๋‚˜์˜ค๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ํ’€์–ด๋ณด๋ฉฐ ์‰ฝ๊ณ  ์žฌ๋ฏธ์žˆ๊ฒŒ ์ตํ˜€๋ณด์•„์š”.

ะ—ะฒะตัั‚ะบั– ะฟั€ะฐ ะฐัžั‚ะฐั€ะฐ

์˜คํ”ˆ ์†Œ์Šค๋ฅผ ํ™œ์šฉํ•ด ์ƒˆ๋กœ์šด ๊ฐ€์น˜๋ฅผ ์ฐฝ์กฐํ•˜๊ณ  ์žˆ๋‹ค. ๋‹ค๋…„๊ฐ„์˜ ๋ฌธ์ œ ํ’€์ด ๊ฒฝํ—˜์œผ๋กœ ๋ณต์žกํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ๊ฐ€๋ฅด์น˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅ ์ค‘์ด๋‹ค. IT ์ข…์‚ฌ์ž๋“ค์ด ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ์ค„์ด๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ๋‚œ๊ด€์„ ๋›ฐ์–ด๋„˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ ์ด ์ฑ…์„ ์ง‘ํ•„ํ–ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ์ž์—ฐ์–ด ๋ชจ๋‘ ๊ด€์‹ฌ์ด ๋งŽ์€ ๊ฐœ๋ฐœ์ž๋‹ค. ๊ณ ๋ ค๋Œ€ํ•™๊ต์—์„œ ํ•œ๋ฌธํ•™์„ ์ „๊ณตํ•˜๋ฉฐ ์ž์—ฐ์Šค๋ ˆ ์ค‘๊ตญ์–ด์™€ ์ผ๋ณธ์–ด๋ฅผ ์ตํžˆ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ค‘๊ตญ, ์ŠคํŽ˜์ธ, ์ผ๋ณธ ๋“ฑ์—์„œ ์ƒํ™œํ•˜๋ฉฐ ๋‹ค์–‘ํ•œ ๋ฌธํ™”์™€ ์™ธ๊ตญ์–ด๋ฅผ ์ ‘ํ–ˆ๊ณ , ๊ณต๋ถ€์— ๋งค์ง„ํ•ด ์˜์–ด/์ค‘๊ตญ์–ด/์ผ๋ณธ์–ด/์ŠคํŽ˜์ธ์–ด๋ฅผ ์ดํ•ดํ•˜๊ณ  ๊ตฌ์‚ฌํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€์ด ๋˜์—ˆ๋‹ค. ์ผ๋ณธ์—์„œ ์›น๊ณผ ADAS ๊ฐœ๋ฐœ ์—…๋ฌด๋ฅผ ๋‹ด๋‹นํ•˜์˜€์œผ๋ฉฐ, ํ˜„์žฌ๋Š” ํ•œ๊ตญ๋น„๊ฑด์ธ์ฆ์›์—์„œ ์›น ์‹œ์Šคํ…œ ๊ฐœ๋ฐœ์ž๋กœ ์ผํ•˜๊ณ  ์žˆ๋‹ค. ์‹ ๊ธฐ์ˆ ๊ณผ ์ตœ์ ํ™”์— ๊ด€์‹ฌ์ด ๋งŽ์œผ๋ฉฐ, โ€˜์ Š์Œ์„ ๊ฐ’์ง„ ๋ชจํ—˜๊ณผ ๋ฐ”๊พธ์žโ€™๋Š” ๋งˆ์Œ์œผ๋กœ ๋‹ค์–‘ํ•œ ๊ฒฝํ—˜์„ ํ•˜๊ณ , ๊ฐœ๋ฐœ์— ์žˆ์–ด์„œ๋Š” ํ•œ ์šฐ๋ฌผ์„ ๊นŠ์ด ๊ทธ๋ฆฌ๊ณ  ํšจ์œจ์ ์œผ๋กœ ํŒŒ๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅ ์ค‘์ด๋‹ค.

ะั†ะฐะฝั–ั†ะต ะณัั‚ัƒ ัะปะตะบั‚ั€ะพะฝะฝัƒัŽ ะบะฝั–ะณัƒ

ะŸะฐะดะทัะปั–ั†ะตัั ัะฒะฐั–ะผั– ะผะตั€ะบะฐะฒะฐะฝะฝัะผั–.

ะงั‹ั‚ะฐะฝะฝะต ั–ะฝั„ะฐั€ะผะฐั†ั‹b

ะกะผะฐั€ั‚ั„ะพะฝั‹ ั– ะฟะปะฐะฝัˆัั‚ั‹
ะฃัั‚ะฐะปัŽะนั†ะต ะฟั€ะฐะณั€ะฐะผัƒ "ะšะฝั–ะณั– Google Play" ะดะปั Android ั– iPad/iPhone. ะฏะฝะฐ ะฐัžั‚ะฐะผะฐั‚ั‹ั‡ะฝะฐ ัั–ะฝั…ั€ะฐะฝั–ะทัƒะตั†ั†ะฐ ะท ะฒะฐัˆั‹ะผ ัƒะปั–ะบะพะฒั‹ะผ ะทะฐะฟั–ัะฐะผ ั– ะดะฐะทะฒะฐะปัะต ั‡ั‹ั‚ะฐั†ัŒ ัƒ ั–ะฝั‚ัั€ะฝัั†ะต ะฐะฑะพ ะฟะฐ-ะทะฐ ัะตั‚ะบะฐะน, ะดะทะต ะฑ ะฒั‹ ะฝั– ะฑั‹ะปั–.
ะะพัžั‚ะฑัƒะบั– ั– ะบะฐะผะฟ'ัŽั‚ะฐั€ั‹
ะฃ ะฒัะฑ-ะฑั€ะฐัžะทะตั€ั‹ ะบะฐะผะฟ'ัŽั‚ะฐั€ะฐ ะผะพะถะฝะฐ ัะปัƒั…ะฐั†ัŒ ะฐัžะดั‹ัะบะฝั–ะณั–, ะบัƒะฟะปะตะฝั‹ั ัž Google Play.
ะญะปะตะบั‚ั€ะพะฝะฝั‹ั ะบะฝiะณi i iะฝัˆั‹ั ะฟั€ั‹ะปะฐะดั‹
ะšะฐะฑ ั‡ั‹ั‚ะฐั†ัŒ ะฝะฐ ั‚ะฐะบั–ั… ะฟั€ั‹ะปะฐะดะฐั… ะดะปั ัะปะตะบั‚ั€ะพะฝะฝั‹ั… ะบะฝั–ะณ, ัะบ, ะฝะฐะฟั€ั‹ะบะปะฐะด, Kobo, ั‚ั€ัะฑะฐ ัะฟะฐะผะฟะฐะฒะฐั†ัŒ ั„ะฐะนะป ั– ะฟะตั€ะฐะฝะตัั†ั– ัะณะพ ะฝะฐ ัะฒะฐัŽ ะฟั€ั‹ะปะฐะดัƒ. ะ’ั‹ะบะฐะฝะฐะนั†ะต ะฟะฐะดั€ะฐะฑัะทะฝั‹ั ั–ะฝัั‚ั€ัƒะบั†ั‹ั–, ะฟั€ั‹ะฒะตะดะทะตะฝั‹ั ัž ะ”ะฐะฒะตะดะฐั‡ะฝั‹ะผ ั†ัะฝั‚ั€ั‹, ะบะฐะฑ ะฟะตั€ะฐะฝะตัั†ั– ั„ะฐะนะปั‹ ะฝะฐ ะฟั€ั‹ะปะฐะดั‹, ัะบั–ั ะฟะฐะดั‚ั€ั‹ะผะปั–ะฒะฐัŽั†ั†ะฐ.