๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (100)

๐Ÿ–ฅ dev-ruby

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ์ •๊ทœํ‘œํ˜„์‹(Regular Expression) ํ™•์‹คํ•˜๊ฒŒ ์•Œ๊ณ ๊ฐ€์ž !

์ •๊ทœํ‘œํ˜„์‹์ด๋ž€? ์ •๊ทœ ํ‘œํ˜„์‹์€ ๋ฌธ์ž์—ด์— ๋‚˜ํƒ€๋Š” ํŠน์ • ๋ฌธ์ž ์กฐํ•ฉ๊ณผ ๋Œ€์‘์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ํŒจํ„ด์ด๋‹ค. ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ์ •๊ทœํ‘œํ˜„์‹๋„ ๊ฐ์ฒด๋‹ค. ์ •๊ทœ์‹์„ ๋งŒ๋“œ๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• 1. ์ •๊ทœ์‹ ๋ฆฌํ„ฐ๋Ÿด ์‚ฌ์šฉ let re = /ab+c/; 2. RegExp ๊ฐ์ฒด์˜ ์ƒ์„ฑ์ž ํ•จ์ˆ˜ ์‚ฌ์šฉ let re = new RegExp("ab+c"); ์ •๊ทœ์‹ ๋ฆฌํ„ฐ๋Ÿด์€ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋ถˆ๋Ÿฌ์™€์งˆ ๋•Œ ์ปดํŒŒ์ผ๋˜๊ณ , ์ƒ์„ฑ์ž ํ•จ์ˆ˜๋Š” ์‹คํ–‰ ์‹œ์ ์— ์ปดํŒŒ์ผ ๋œ๋‹ค๋Š” ์ฐจ์ด์ ์ด ์žˆ๋‹ค. ์ •๊ทœ์‹ ํŒจํ„ด 1. ๋‹จ์ˆœ ํŒจํ„ด ์‚ฌ์šฉ ๋ฌธ์ž์—ด์„ ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ๋Œ€์‘์‹œํ‚ค๊ณ ์ž ํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, /abc/ ๋ผ๋Š” ํŒจํ„ด์€ abc ๋ผ๋Š” ๋ฌธ์ž, ์ˆœ์„œ๊ฐ€ ๋ชจ๋‘ ๋Œ€์‘๋˜์–ด์•ผ๋งŒ ํ•œ๋‹ค. 2. ํŠน์ˆ˜ ๋ฌธ์ž ์‚ฌ์šฉ ํŒจํ„ด์— ํŠน์ˆ˜ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ๊ฐœ์˜ a๋ฅผ ์ฐพ๊ฑฐ๋‚˜ ์ˆซ์ž๋งŒ ์ฐพ๊ฑฐ๋‚˜ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ •๊ทœ์‹ ์‚ฌ์šฉ..

javascript 2021. 11. 27. 00:25
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฐฐ๋‹ฌ - Lv.2 javascript <Summer/Winter ~2018>

๋ฌธ์ œ ์„ค๋ช… N๊ฐœ์˜ ๋งˆ์„๋กœ ์ด๋ฃจ์–ด์ง„ ๋‚˜๋ผ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋‚˜๋ผ์˜ ๊ฐ ๋งˆ์„์—๋Š” 1๋ถ€ํ„ฐ N๊นŒ์ง€์˜ ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ๊ฐ ํ•˜๋‚˜์”ฉ ๋ถ€์—ฌ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋งˆ์„์€ ์–‘๋ฐฉํ–ฅ์œผ๋กœ ํ†ตํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋„๋กœ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”๋ฐ, ์„œ๋กœ ๋‹ค๋ฅธ ๋งˆ์„ ๊ฐ„์— ์ด๋™ํ•  ๋•Œ๋Š” ์ด ๋„๋กœ๋ฅผ ์ง€๋‚˜์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋„๋กœ๋ฅผ ์ง€๋‚  ๋•Œ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์€ ๋„๋กœ๋ณ„๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํ˜„์žฌ 1๋ฒˆ ๋งˆ์„์— ์žˆ๋Š” ์Œ์‹์ ์—์„œ ๊ฐ ๋งˆ์„๋กœ ์Œ์‹ ๋ฐฐ๋‹ฌ์„ ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ๋งˆ์„๋กœ๋ถ€ํ„ฐ ์Œ์‹ ์ฃผ๋ฌธ์„ ๋ฐ›์œผ๋ ค๊ณ  ํ•˜๋Š”๋ฐ, N๊ฐœ์˜ ๋งˆ์„ ์ค‘์—์„œ K ์‹œ๊ฐ„ ์ดํ•˜๋กœ ๋ฐฐ๋‹ฌ์ด ๊ฐ€๋Šฅํ•œ ๋งˆ์„์—์„œ๋งŒ ์ฃผ๋ฌธ์„ ๋ฐ›์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ N = 5, K = 3์ธ ๊ฒฝ์šฐ์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. ์œ„ ๊ทธ๋ฆผ์—์„œ 1๋ฒˆ ๋งˆ์„์— ์žˆ๋Š” ์Œ์‹์ ์€ [1, 2, 4, 5] ๋ฒˆ ๋งˆ์„๊นŒ์ง€๋Š” 3 ์ดํ•˜์˜ ์‹œ๊ฐ„์— ๋ฐฐ๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ 3๋ฒˆ ๋งˆ์„๊นŒ์ง€๋Š” 3์‹œ๊ฐ„ ์ด๋‚ด๋กœ..

[์•Œ๊ณ ๋ฆฌ์ฆ˜] ๋‹ค์ต์ŠคํŠธ๋ผ(Dijkstra) ์•Œ๊ณ ๋ฆฌ์ฆ˜

Dijkstra ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์‹œ์ž‘์ ์œผ๋กœ ๋ถ€ํ„ฐ ๋‚˜๋จธ์ง€ ์ •์ ๊นŒ์ง€ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. ๊ฐ„์„ ์— ๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๋Š” ๊ทธ๋ž˜ํ”„์—์„œ 1:N ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ๋‹จ, ๊ฐ€์ค‘์น˜๋Š” ์Œ์ˆ˜(-) ๊ฐ’์„ ๊ฐ€์ง€์ง€ ์•Š๋Š”๋‹ค. ๊ตฌํ˜„๋ฐฉ๋ฒ• ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฐ๊ฐ์˜ ์ •์ ์— ๋Œ€ํ•ด์„œ ์ •์  s์—์„œ ์ •์  v๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ๋ฅผ d[v]์— ์ €์žฅํ•˜๋ฉด์„œ ํƒ์ƒ‰ํ•œ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‹œ์ž‘ ์‹œ, d[s] = 0์ด๊ณ , s๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ๋ชจ๋“  ์ •์ ์— ๋Œ€ํ•ด์„œ๋Š” d[v] = ํ•ด๋‹น๊ฐ€์ค‘์น˜ ๋กœ ์‹œ์ž‘ํ•œ๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ข…๋ฃŒ ์‹œ, d[v]๋Š” s์—์„œ v๊นŒ์ง€์˜ ์ตœ๋‹จ ๊ฒฝ๋กœ์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ฒŒ ๋œ๋‹ค. ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Graph[A][B]๋Š” A์—์„œ B๊นŒ์ง€ ๊ฐ€๋Š” ๋ฐ ๋“œ๋Š” ๋น„์šฉ ์ด๋ผ๊ณ  ํ•˜์ž. 1. ์ฃผ์–ด์ง„ N๊ฐœ์˜ ์ •์  ๊ทธ๋ž˜ํ”„์—์„œ NxN 2์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ ..

algorithm 2021. 11. 25. 03:39
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์Šคํ‚ฌํŠธ๋ฆฌ - Lv.2 javascript <Summer&Winter Coding 2018>

๋ฌธ์ œ ์„ค๋ช… ์„ ํ–‰ ์Šคํ‚ฌ์ด๋ž€ ์–ด๋–ค ์Šคํ‚ฌ์„ ๋ฐฐ์šฐ๊ธฐ ์ „์— ๋จผ์ € ๋ฐฐ์›Œ์•ผ ํ•˜๋Š” ์Šคํ‚ฌ์„ ๋œปํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์„ ํ–‰ ์Šคํ‚ฌ ์ˆœ์„œ๊ฐ€ ์ŠคํŒŒํฌ → ๋ผ์ดํŠธ๋‹ ๋ณผํŠธ → ์ฌ๋”์ผ๋•Œ, ์ฌ๋”๋ฅผ ๋ฐฐ์šฐ๋ ค๋ฉด ๋จผ์ € ๋ผ์ดํŠธ๋‹ ๋ณผํŠธ๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•˜๊ณ , ๋ผ์ดํŠธ๋‹ ๋ณผํŠธ๋ฅผ ๋ฐฐ์šฐ๋ ค๋ฉด ๋จผ์ € ์ŠคํŒŒํฌ๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์œ„ ์ˆœ์„œ์— ์—†๋Š” ๋‹ค๋ฅธ ์Šคํ‚ฌ(ํž๋ง ๋“ฑ)์€ ์ˆœ์„œ์— ์ƒ๊ด€์—†์ด ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ŠคํŒŒํฌ → ํž๋ง → ๋ผ์ดํŠธ๋‹ ๋ณผํŠธ → ์ฌ๋”์™€ ๊ฐ™์€ ์Šคํ‚ฌํŠธ๋ฆฌ๋Š” ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ฌ๋” → ์ŠคํŒŒํฌ๋‚˜ ๋ผ์ดํŠธ๋‹ ๋ณผํŠธ → ์ŠคํŒŒํฌ → ํž๋ง → ์ฌ๋”์™€ ๊ฐ™์€ ์Šคํ‚ฌํŠธ๋ฆฌ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์„ ํ–‰ ์Šคํ‚ฌ ์ˆœ์„œ skill๊ณผ ์œ ์ €๋“ค์ด ๋งŒ๋“  ์Šคํ‚ฌํŠธ๋ฆฌ1๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด skill_trees๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๊ฐ€๋Šฅํ•œ ์Šคํ‚ฌํŠธ๋ฆฌ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. ์ œํ•œ ์กฐ๊ฑด ..