ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค) ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜ (Hash)

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค) ์™„์ฃผํ•˜์ง€ ๋ชปํ•œ ์„ ์ˆ˜ ๋‚ด ํ’€์ด ๊ตฌํ˜„์€ ์‰ฌ์šฐ๋‚˜, ์–ด๋–ป๊ฒŒ ํšจ์œจ์ ์œผ๋กœ ๋Œ๋ฆด์ง€ ๊ณ ๋ฏผ Sorting์„ ํ•˜์—ฌ, ์ฐจ๋ก€๋Œ€๋กœ ํ™•์ธํ•˜๋‹ค๊ฐ€ ๊ฐ’์ด ๋‹ค๋ฅด๋ฉด ํ•ด๋‹น๊ฐ’์„ ๋ฆฌํ„ดํ•œ๋‹ค. ์˜ˆ์™ธ์ฒ˜๋ฆฌ : ๋ฏธ์™„์ฃผ์ž๊ฐ€ participant์˜ ๋งจ๋งˆ์ง€๋ง‰์— ์œ„์น˜ํ•  ๊ฒฝ์šฐ, for๋ฌธ์•ˆ์—์„œ ํ•ด๊ฒฐ๋˜์ง€์•Š์œผ๋ฏ€๋กœ ๋ณ„๋„๋กœ ๋งˆ์ง€๋ง‰ ๊ฐ’ ๋ฆฌํ„ด v2 Hash ์นดํ…Œ๊ณ ๋ฆฌ์— ์œ„์น˜ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ฒ˜์Œ ๊ณ ๋ฏผํ• ๋•Œ ์ƒ๊ฐํ–ˆ๋˜ ๋ฐฉ๋ฒ•. participant๋Š” 1์„ ๋”ํ•˜๊ณ  completion์„ 1์„ ๋บ€ ํ›„, 0์ด ์•„๋‹ˆ๋ฉด ๋ฆฌํ„ดํ•˜๋Š” ๋ฐฉ์‹ map.getOrDefault(~, ~) ๋ฉ”์†Œ๋“œ๊ฐ€ ์ƒ๊ฐ๋‚˜์ง€ ์•Š์•„ ๊ตฌํ˜„๋ณด๋ฅ˜. Collections Framework์— ๋Œ€ํ•ด ๋”๋”์šฑ ์ž˜ ์•Œ๋„๋ก ํ•˜์ž. v3 ๋‚ด ๋ฐฉ์‹์ด๋ž‘ ๋˜‘๊ฐ™๋‹ค. ๋‹ค๋งŒ ๋‚˜์ฒ˜๋Ÿผ ๋ณ„๋„๋กœ List ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ƒ์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์—ˆ๋‹ค. sorting์„..

Algorithm_Q 2019. 9. 13. 15:51
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค) ์†Œ์ˆ˜ ์ฐพ๊ธฐ (Brute-Force)

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค) ์†Œ์ˆ˜ ์ฐพ๊ธฐ ์†Œ์ˆ˜ ํŒ๋ณ„์€ ์˜ˆ์ „์— ๋‹ค๋ค˜๋˜ '์—๋ผํ† ์Šคํ…Œ๋„ค์Šค์˜ ์ฒด'๋ฅผ ์ด์šฉํ• ๊ฒƒ์œผ๋กœ ์‰ฝ๊ฒŒ ๋– ์˜ฌ๋ฆด ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ฃผ์–ด์ง„ ์ž…๋ ฅ๊ฐ’์„ ์ด์šฉํ•ด ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ํ˜•ํƒœ์˜ ์ˆซ์ž๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด, ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋‹ค๊ฐ€ '์ˆœ์—ด๊ณผ ์กฐํ•ฉ'์„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค. permutation๊ณผ ์†Œ์ˆ˜ํŒ๋ณ„์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํฌ๊ฒŒ ๋ณ€๊ฒฝ์‹œํ‚ฌ๋ถ€๋ถ„์ด ์—†์–ด, ๋ฐฉ๋ฒ•๋งŒ ๋– ์˜ฌ๋ฆฌ๋ฉด ๋ฌธ์ œ๋Š” ๊ธˆ๋ฐฉ ํ•ด๊ฒฐ๋œ๋‹ค. ๊ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ๊ธฐ์กด์˜ ํฌ์ŠคํŒ…์„ ์ฐธ๊ณ ํ•˜์ž. ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด์ค‘, ์˜์™ธ๋กœ ์†Œ์ˆ˜ํŒ๋ณ„์„ ์ˆœํšŒ๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ๋…ธ๊ฐ€๋‹ค๋กœ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ๊ฐ€ ๋งŽ์•˜๊ณ , ์ˆœ์—ด์ฝ”๋“œ๋„ ์ œ๊ฐ๊ฐ์ด์—ˆ๋‹ค. ๋งจ์œ„์— ๋žญํฌ๋œ ์ฝ”๋“œ๋Š” ์˜์™ธ๋กœ ๋ณ„๋กœ์˜€๊ณ , v2์™€ ๊ฐ™์€ ์ฝ”๋“œ๊ฐ€ ๋‚˜์™€ ๋น„์Šทํ•˜๊ฒŒ ๊ดœ์ฐฎ์•˜๋‹ค. ๋น„์Šทํ•œ ๋ฐฉ์‹์œผ๋กœ ์†Œ์ˆ˜ํŒ๋ณ„์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, permutation์ฝ”๋“œ๋„ ๋‚˜์™€๋Š” ๋‹ค๋ฅธ ๋ฐฉ์‹์ด๋‹ค. g..

Algorithm_Q 2019. 9. 13. 15:50
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค) ์นดํŽซ (Brute-Force)

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค) ์นดํŽซ github/Brute-Force v2๋Š” ๋‚ด ์ฝ”๋“œ๋ฅผ ์ข€๋” ์ •๋ฆฌ์‹œํ‚จ ๋Š๋‚Œ. ๊ฐ€๋…์„ฑ ๋” ๋‚ซ๋‹ค. ์—ญ์ˆœ์œผ๋กœ ์ธ๋ฑ์Šค๋ฅผ ๊ฐ์†Œ์‹œํ‚ค์ง€์•Š๊ณ , ์ข€๋” ์ง๊ด€์ ์œผ๋กœ height=1๋ถ€ํ„ฐ ์ฆ๊ฐ€์‹œํ‚ค๋ฉฐ if๋ฌธ์„ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๊ณ , brown๋„“์ด ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์„ '2(๊ฐ€๋กœ+์„ธ๋กœ)+4๊ท€ํ‰์ด'๋กœ ๊ตฌํ•จ. v3๋Š” ๊ธฐํ•˜์ ์œผ๋กœ ์ด์ฐจ๋ฐฉ์ ์‹์„ ์ด์šฉํ•œ๋‹ค. a๋Š” ์ „์ฒด ์ง์‚ฌ๊ฐํ˜•์˜ ๊ฐ€๋กœ+์„ธ๋กœ์ด๋ฉฐ, b๋Š” ๊ฐ€๋กœ*์„ธ๋กœ์ด๋‹ค. ์ด๋ฅผ ๋งŒ์กฑํ•˜๋Š” (๊ฐ€๋กœ,์„ธ๋กœ)๊ฐ’์„ ๊ตฌํ•˜๋ฉด ๋˜๋ฏ€๋กœ, ์ด์ฐจ๋ฐฉ์ •์‹์„ ์ด์šฉํ•ด ๋‘ ํ•ด x1, x2๊ฐ€ ๊ฐ€๋กœ,์„ธ๋กœ์ธ x2-ax+b=0 ์ด์ฐจ๋ฐฉ์ •์‹์„ ๋งŒ๋“ค์–ด ๊ทผ์˜๊ณต์‹์„ ์ด์šฉํ•ด ํ‘ผ๋‹ค. (์œ„์˜ ์ด์ฐจ๋ฐฉ์ •์‹ ํ˜•ํƒœ์—์„œ ์›๋ž˜ a๋Š” ๋‘ ํ•ด์˜ ํ•ฉ, b๋Š” ๋‘ ํ•ด์˜ ๊ณฑ์ด๋‹ค)

Algorithm_Q 2019. 9. 13. 15:48
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค) ๋‹จ์–ด ๋ณ€ํ™˜ (DFS/BFS)

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค) ๋‹จ์–ด ๋ณ€ํ™˜ github/DFS%2CBFS ์ตœ๋‹จ๊ฑฐ๋ฆฌ๊ฐ€ ํ•„์š”ํ•œ๋งŒํผ DFS๊ฐ€ ์•„๋‹Œ BFS๋ฅผ ์ด์šฉํ•˜์˜€์Œ. ๊ฐ ๋‹จ์–ด๋ฅผ node๋กœ ๋ณด๊ณ , ํ•œ๊ธ€์ž ์ฐจ์ด๋กœ ๋ณ€ํ™˜๊ฐ€๋Šฅํ•˜๋ฉด ์ธ์ ‘ํ•œ edge๋กœ ์„ค์ •. begin๋…ธ๋“œ ~ target๋…ธ๋“œ๊นŒ์ง€์˜ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๊ตฌํ•จ. BFS์˜ ๊ธฐ๋ณธ๊ตฌ์กฐ๋Š” ์ผ๋ฐ˜์ ์ธ ํ˜•ํƒœ๋ฅผ ๋”ฐ๋ฆ„ (๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ… ๊ธฐ๋ณธ์ฝ”๋“œ ์ฐธ๊ณ ) ์ด๋•Œ, while๋ฌธ์—์„œ distance ์นด์šดํŠธ์‹œ depth์— ์ƒ๊ด€์—†์ด ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ• ๋•Œ๋งˆ๋‹ค ์นด์šดํŒ… ๋˜๋ฒ„๋ฆฐ๋‹ค. ๋”ฐ๋ผ์„œ ์•„๋ž˜์™€ ๊ฐ™์ด queue size๋ฅผ ์ด์šฉํ•œ for๋ฌธ ์ถ”๊ฐ€. ์ฐธ๊ณ ์ž๋ฃŒ https://www.acmicpc.net/board/view/12343 ํฐ ์ฐจ์ด๋Š” ์•„๋‹Œ๋ฐ, v2 ์ฝ”๋“œ์™€ ๊ฐ™์ด ๋ณ„๋„์˜ Nodeํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, node.edge๋กœ distance๋ฅผ ์นด์šดํŒ…ํ•˜๊ฑฐ๋‚˜, isN..

Algorithm_Q 2019. 9. 13. 15:43
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค) ๊ฐ€์žฅ ํฐ ์ˆ˜ (Sort)

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค) ๊ฐ€์žฅ ํฐ ์ˆ˜ github/Sort ๊ฐ„๋‹จํ•ด๋ณด์ด์ง€๋งŒ ์ƒ๊ฐ๋ณด๋‹ค ์–ด๋ ค์› ๋˜ ๋ฌธ์ œ๋‹ค. numbers์›์†Œ๋Š” ๋‹คํ–‰ํžˆ 1000๊นŒ์ง€์ง€๋งŒ ๊ฐฏ์ˆ˜๊ฐ€ 10๋งŒ๊ฐœ๊นŒ์ง€ ๋“ค์–ด์˜ฌ์ˆ˜์žˆ์–ด, ์˜์™ธ์˜ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๊ฐ€ ๊ต‰์žฅํžˆ ๋งŽ์ด ์ƒ๊ธด๋‹ค. ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๊ฐ ๊ฒฝ์šฐ๋ฅผ ๋‚˜๋ˆ  ๋…ผ๋ฆฌ์ ์œผ๋กœ ํ’€๋‹ค๊ฐ€ ๋„ˆ๋ฌด ๋ณต์žกํ•ด ๊ฒฐ๊ตญ ๊ธฐ๋ณธ sortํ•จ์ˆ˜๋ฅผ ์ด์šฉ. ๋ฌผ๋ก  Comparator๋Š” overrideํ•ด์„œ. ๋‚˜์™€ ๋น„์Šทํ•˜์ง€๋งŒ, compareํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜๋ฉด ๋ผ์ธ์ˆ˜๊ฐ€ ์‚ด์ง ๋” ์ค„์–ด๋“ค๊ธดํ•จ. ๊ฐ€๋…์„ฑ์€ ๋‚˜์ฒ˜๋Ÿผ ํ’€์–ด์“ฐ๋Š”๊ฒƒ์ด ๋” ๋‚˜์€๊ฒƒ ๊ฐ™๋‹ค. ๋‚˜๋Š” "0000...0"->"0" ํ•„ํ„ฐ๋ง์„ ํ•˜๊ธฐ์œ„ํ•ด, string์˜ ๋ชจ๋“  ๊ฐ ์ž๋ฆฌ๋ฅผ ๊ฒ€์‚ฌํ›„ 0์ด ์•„๋‹Œ์ˆ˜๋ฅผ ๋งŒ๋‚˜๋ฉด for๋ฌธ ํƒˆ์ถœํ›„ returnํ•˜๊ฒŒํ•˜๊ณ , ๋ชจ๋“  ์ž๋ฆฌ๊ฐ€ 0์œผ๋กœ ํŒ๋ณ„๋‚˜๋ฉด "0"์„ ๋ฆฌํ„ดํ•˜๊ฒŒ ํ–ˆ๋‹ค. ์œ„์˜ ๋ฐฉ๋ฒ•์ฒ˜๋Ÿผ ํ•œ๋‹ค๋ฉด, ์ฒซ์ž๋ฆฌ๋งŒ ๊ฒ€์‚ฌ..

Algorithm_Q 2019. 9. 13. 15:42
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ