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

๋ชฉ๋กalgorithm (8)

Lemonlover๐Ÿง˜๐Ÿป‍โ™€๏ธ

๊ทธ๋ž˜ํ”„๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ํ•˜๋Š”๊ฐ€

์–ด๋ ค์šด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ๊ทธ๋ž˜ํ”„ ๋ฌธ์ œ๊ฐ€ ํ•˜๋‚˜์”ฉ ์ถœ์ œ ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ๊ทธ๋ž˜ํ”„ ๊ด€๋ จ ๋ฌธ์ œ๋ผ๊ณ  ํ•œ๋‹ค๋ฉด, ์•„๋ž˜ ์ˆ˜์ค€์—์„œ ๋‚˜์˜ต๋‹ˆ๋‹ค. 1. ์ตœ๋‹จ๊ฑฐ๋ฆฌ (ํ”Œ๋กœ์ด๋“œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ / ๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜) 2. ํŠธ๋ฆฌ 3. ์‹ธ์ดํด ์ฐพ๊ธฐ 4. ์ตœ์†Œ ์ŠคํŒจ๋‹ ํŠธ๋ฆฌ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š”๋ฐ ๊ฐ€์žฅ ๋จผ์ € ํ•ด์•ผํ•  ๊ฒƒ์€ '๋…ธ๋“œ์™€ ๋…ธ๋“œ๋ฅผ ์—ฃ์ง€๋กœ ์ž‡๋Š” ๊ฒƒ' ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค. 1. adjacent matrix 2. adjacent list ์ด ๋‘ ๊ฐ€์ง€์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณผ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ๊ทธ ์ „์— ์ผ๋ฐ˜์ ์œผ๋กœ ๊ทธ๋ž˜ํ”„์˜ ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜์— ๋Œ€ํ•ด์„œ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. 1. directed graph (๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„) : ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ ๊ทธ๋ฆผ์— ํ™”์‚ดํ‘œ๊ฐ€ ์žˆ๊ฑฐ๋‚˜, ๋ฌธ์ œ ์„ค๋ช…์— 'a์—์„œ b๋กœ๋งŒ ๊ฐˆ ์ˆ˜ ์žˆ๋‹ค'๋ผ๋Š” ๋ง์ด ์žˆ์„ ๊ฒฝ์šฐ ..

algorithm/๊ธฐ์ดˆ 2019. 12. 16. 17:01
์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ์™„์ „ํƒ์ƒ‰์˜ ๊ธฐ๋ณธ์— ๋Œ€ํ•ด์„œ (2)

'์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•œ ์™„์ „ํƒ์ƒ‰์˜ ๊ธฐ๋ณธ์— ๋Œ€ํ•ด์„œ (1)' ์—์„œ๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ ์ˆซ์ž ์กฐํ•ฉ์„ ๊ณ ๋ฅด๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„ ๋ณด์•˜์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ์ด๊ฒƒ๋งŒ ์•Œ๋ฉด ๊ทธ๋ณด๋‹ค ์ข€ ๋” ์–ด๋ ค์šด ๋ฌธ์ œ๋“ค ํ‘ธ๋Š” ๋ชจ๋“  ์ค€๋น„๋Š” ๋๋‚ฌ์ง€๋งŒ, ์‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๊ธฐ๋กœ ํ•ฉ์‹œ๋‹ค. https://www.acmicpc.net/problem/13302 13302๋ฒˆ: ๋ฆฌ์กฐํŠธ ์ˆ˜์˜์ด๋Š” ์—ฌ๋ฆ„๋ฐฉํ•™์„ ๋งž์ดํ•˜์—ฌ ๋งŽ์€ ๋†€์ด ์‹œ์„ค์ด ์žˆ๋Š” KOI ๋ฆฌ์กฐํŠธ์— ๋†€๋Ÿฌ๊ฐ€๋ ค๊ณ  ํ•œ๋‹ค. ๋ฆฌ์กฐํŠธ์˜ ํ•˜๋ฃจ ์ด์šฉ๊ถŒ์˜ ๊ฐ€๊ฒฉ์€ ๋งŒ์›์ด๋‹ค. ํ•˜์ง€๋งŒ ๋ฆฌ์กฐํŠธ์˜ ๊ทœ๋ชจ๋Š” ์ƒ์ƒ์„ ์ดˆ์›”ํ•˜์—ฌ ๋ชจ๋“  ์‹œ์„ค์„ ์ถฉ๋ถ„ํžˆ ์ฆ๊ธฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•˜๋ฃจ๋กœ๋Š” ํ„ฐ๋ฌด๋‹ˆ์—†์ด ๋ถ€์กฑํ•˜๋‹ค. ๊ทธ๋ž˜์„œ ๋งŽ์€ ์ด์šฉ๊ฐ๋“ค์€ 3์ผ ์ด์ƒ ์—ฐ์†์œผ๋กœ ์ด์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค. KOI ๋ฆฌ์กฐํŠธ์—์„œ๋Š” 3์ผ ์—ฐ์† ์ด์šฉ๊ถŒ์„ ํ• ์ธ๋œ ๊ฐ€๊ฒฉ ์ด๋งŒ์˜ค์ฒœ์›์—, ์—ฐ์† 5์ผ๊ถŒ์€ ์‚ผ๋งŒ์น ์ฒœ์›์— ํŒ๋งค..

algorithm/๊ธฐ์ดˆ 2019. 12. 13. 00:38
sorting algorithm(basic)

๊ธฐ๋ณธ์ ์ธ sorting ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•ด ๋ดค์Šต๋‹ˆ๋‹ค. ์„ค๋ช…์€ ๋งํฌ๋ฅผ ๋”ฐ๋ผ๊ฐ€์‹œ๋ฉด ๊ต‰์žฅํžˆ ์ž˜ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.๋ฐฑ์ค€ ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ ๋ฌธ์ œ๋ฅผ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ํ’€์–ด๋ณด๋ฉด์„œ ์—ฐ์Šต์„ ํ•ด๋ดค์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ๋Š” ๋ชจ๋‘ AC ๋ฐ›์€ ์ฝ”๋“œ๋“ค์ž…๋‹ˆ๋‹ค.์ฝ”๋“œ๋Š” C++๋กœ ๋˜์–ด ์žˆ๊ตฌ์š”. ๋‚˜์ค‘์— ํ˜น์‹œ ๋ฉด์ ‘ ๋•Œ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ์ƒ๊ฐํ•˜์—ฌ ์ตœ๋Œ€ํ•œ ๊น”๋”ํ•˜๊ฒŒ ์ž‘์„ฑํ•ด๋ดค์Šต๋‹ˆ๋‹ค. bucket sort / counting sort / radix sort ์— ๋Œ€ํ•ด์„œ๋Š” sorting algorithm(advanced)์— ์ž‘์„ฑํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์—๋‹ˆ๋ฉ”์ด์…˜์€ ๊ฐ algorithm์ด ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ์–ด์„œ ๊ณต์œ ํ•ด๋ด…๋‹ˆ๋‹ค. [์ถœ์ฒ˜ : https://medium.com/@kamyarg/comparison-sorting-algorithms-and-mystery-of-nl..

algorithm/๊ธฐ์ดˆ 2019. 3. 21. 17:40
BFS

์ปดํ“จํ„ฐ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ, ๋ณดํ†ต ๊ทธ ๋ฌธ์ œ๋Š” ํƒ์ƒ‰์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค.๋ฌธ์ œ๊ฐ€ ์ •์˜ํ•˜๊ณ  ์žˆ๋Š” '๊ณต๊ฐ„'์„ ํƒ์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ์ƒํƒœ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์ •์˜ํ•  ์ˆ˜ ์—†๋‹ค๋ฉด, ๋ชจ๋“  ๊ณต๊ฐ„์„ ์ปค๋ฒ„ํ•œ๋‹ค๋Š” ๋ณด์žฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์—ํ•ด๊ฐ€ ๋งž๋Š” ๊ฒƒ์ธ์ง€ ํŒ๋ณ„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.๊ทธ ๋‹ค์Œ ๊ณต๊ฐ„์€ ์ด์ „์˜ ์ƒํƒœ๋ฅผ ํ†ตํ•ด ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ํŠธ๋ฆฌ์ฒ˜๋Ÿผ ๊ณต๊ฐ„์ด ๋ป—์–ด ๋‚˜๊ฐ‘๋‹ˆ๋‹ค. ๊ทธ ๊ณต๊ฐ„์„ ๋ฐฉ๋ฌธํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘์— 'BFS'์™€ 'DFS'๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€๊ธˆ์€ BFS(Breadth First Search)๋ฅผ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜์–ด ๋œป ๊ทธ๋Œ€๋กœ ๋„“์ด ์šฐ์„  ํƒ์ƒ‰์ด๋‹ค. ํŠธ๋ฆฌ์˜ ๊ฐ€์ง€๋ฅผ ๋”ฐ๋ผ์„œ ๋ฌด์ž‘์ • ๋“ค์–ด๊ฐ€์ง€ ์•Š๊ณ , depth๋ฅผ ํ•˜๋‚˜์”ฉ ๋Š˜๋ ค๊ฐ‘๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” BFS์™€ DFS๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ทธ๋ฆผ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ์— ๋”ฐ๋ผ ์–ด๋–ค ๋ฐฉ๋ฌธ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•ด์•ผ ์ •๋‹ต์„ ๋น ๋ฅด๊ฒŒ ์ฐพ์„ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ธ์ง€ํŒ๋‹จํ•˜๊ณ  ์ ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค...

algorithm/๊ธฐ์ดˆ 2019. 1. 29. 12:36