[c++] BOJ 1525 :: ํผ์ฆ
Algorithm ๋ฌธ์ œ/BOJ 2021. 5. 26. 18:43

๋‚œ์ด๋„ : ๊ณจ๋“œ 2 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 1์‹œ๊ฐ„ ๋ฌธ์ œ ํผ์ฆ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ 3×3 ํ‘œ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜๊ฐ€ ์ฑ„์›Œ์ ธ ์žˆ๋‹ค. ์˜ค๋ฅธ์ชฝ ์•„๋ž˜ ๊ฐ€์žฅ ๋ ์นธ์€ ๋น„์–ด ์žˆ๋Š” ์นธ์ด๋‹ค. 1 2 3 4 5 6 7 8 ์–ด๋–ค ์ˆ˜์™€ ์ธ์ ‘ํ•ด ์žˆ๋Š” ๋„ค ๊ฐœ์˜ ์นธ ์ค‘์— ํ•˜๋‚˜๊ฐ€ ๋น„์–ด ์žˆ์œผ๋ฉด, ์ˆ˜๋ฅผ ๊ทธ ์นธ์œผ๋กœ ์ด๋™์‹œํ‚ฌ ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ๋ฌผ๋ก  ํ‘œ ๋ฐ”๊นฅ์œผ๋กœ ๋‚˜๊ฐ€๋Š” ๊ฒฝ์šฐ๋Š” ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์šฐ๋ฆฌ์˜ ๋ชฉํ‘œ๋Š” ์ดˆ๊ธฐ ์ƒํƒœ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ตœ์†Œ์˜ ์ด๋™์œผ๋กœ ์œ„์™€ ๊ฐ™์€ ์ •๋ฆฌ๋œ ์ƒํƒœ๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. ํ’€์ด ์ตœ๋‹จ ๊ฒฝ๋กœ ๋ฌธ์ œ์ด๋ฏ€๋กœ bfs ์ด์šฉ memo ํ•ด์•ผ ๋˜‘๊ฐ™์€ ๊ฒฝ๋กœ ๋‹ค์‹œ ํƒ์ƒ‰ x memo๋Š” ์ „์ฒด map์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•ด์•ผํ•จ string์œผ๋กœ ์ €์žฅ ์ฝ”๋“œ #include #include #include #include #include using namespace std; int map[..

[c++] BOJ 9019 :: DSLR
Algorithm ๋ฌธ์ œ/BOJ 2021. 5. 26. 18:38

๋‚œ์ด๋„ : ๊ณจ๋“œ 5 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 1์‹œ๊ฐ„ 30๋ถ„ ๋ฌธ์ œ DSLR ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ํ’€์ด DSLR์ด๋ผ๋Š” 4๊ฐ€์ง€ ๊ฒฝ๋กœ๊ฐ€ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  bfs ์ฝ”๋“œ #include #include #include using namespace std; struct point { int prev; char state; int visited = -1; }; char dslrArr[4] = { 'D', 'S', 'L', 'R' }; int dslrResult(int type, int num) { int tmp; switch (type) { case 0 : return (num* 2) % 10000; case 1 : if (num == 0) return 9999; else return num - 1; case 2 : tmp = num /..

[c++] BOJ 16236 :: ์•„๊ธฐ ์ƒ์–ด
Algorithm ๋ฌธ์ œ/BOJ 2021. 5. 3. 09:26

๋‚œ์ด๋„ : ๊ณจ๋“œ 4 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : ใ…Žใ…Ž.. ์˜ค๋ž˜ ๊ฑธ๋ฆผ ๋ฌธ์ œ ์•„๊ธฐ ์ƒ์–ด ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ํ’€์ด bfs๋ฅผ ์ด์šฉํ•˜์—ฌ ๋จน์„ ์ˆ˜ ์žˆ๋Š” ๊ณ ๊ธฐ ์ฐพ๊ธฐ + ์ƒ์–ด๋กœ๋ถ€ํ„ฐ์˜ ๊ฑฐ๋ฆฌ ์ฐพ๊ธฐ ๊ฑฐ๋ฆฌ๊ฐ€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋จน์„ ์ˆ˜ ์žˆ๋Š” ๊ณ ๊ธฐ๋“ค ์ฐพ๊ธฐ ๊ทธ ์ค‘ ๊ฐ€์žฅ ์™ผ์ชฝ ์œ„์— ์žˆ๋Š” ๊ณ ๊ธฐ ์ฐพ๊ธฐ ์ƒ์–ด๊ฐ€ ํ•ด๋‹น ๋ฌผ๊ณ ๊ธฐ์˜ ์œ„์น˜๋กœ ์ด๋™ํ•ด์„œ ๋จน๊ณ , ๋จน์€ ๋ฌผ๊ณ ๊ธฐ ๊ฐœ์ˆ˜๊ฐ€ size์™€ ๊ฐ™์•„์ง€๋ฉด size ํ‚ค์šฐ๊ธฐ ์ƒ์–ด๋ณด๋‹ค ์ž‘์€ ๋ฌผ๊ณ ๊ธฐ๊ฐ€ ์—†์„ ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต ์ฝ”๋“œ #include #include #include using namespace std; struct shark { int r; int c; int size = 2; }; struct fish { int r; int c; int distance = 0; fish(int rp, int cp, int dist) { r = rp..

[c++] BOJ 1987 :: ์•ŒํŒŒ๋ฒณ
Algorithm ๋ฌธ์ œ/BOJ 2021. 4. 28. 21:31

๋‚œ์ด๋„ : ๊ณจ๋“œ 4 ๊ฑธ๋ฆฐ ์‹œ๊ฐ„ : 40๋ถ„ ๋ฌธ์ œ ์•ŒํŒŒ๋ฒณ ๋ฌธ์ œ ๋ฐ”๋กœ๊ฐ€๊ธฐ ์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ œ์ถœ ์ •๋‹ต ๋งž์€ ์‚ฌ๋žŒ ์ •๋‹ต ๋น„์œจ 2 ์ดˆ 256 MB 49866 15734 9600 29.155% ์„ธ๋กœ R์นธ, ๊ฐ€๋กœ C์นธ์œผ๋กœ ๋œ ํ‘œ ๋ชจ์–‘์˜ ๋ณด๋“œ๊ฐ€ ์žˆ๋‹ค. ๋ณด๋“œ์˜ ๊ฐ ์นธ์—๋Š” ๋Œ€๋ฌธ์ž ์•ŒํŒŒ๋ฒณ์ด ํ•˜๋‚˜์”ฉ ์ ํ˜€ ์žˆ๊ณ , ์ขŒ์ธก ์ƒ๋‹จ ์นธ (1ํ–‰ 1์—ด) ์—๋Š” ๋ง์ด ๋†“์—ฌ ์žˆ๋‹ค. ๋ง์€ ์ƒํ•˜์ขŒ์šฐ๋กœ ์ธ์ ‘ํ•œ ๋„ค ์นธ ์ค‘์˜ ํ•œ ์นธ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ƒˆ๋กœ ์ด๋™ํ•œ ์นธ์— ์ ํ˜€ ์žˆ๋Š” ์•ŒํŒŒ๋ฒณ์€ ์ง€๊ธˆ๊นŒ์ง€ ์ง€๋‚˜์˜จ ๋ชจ๋“  ์นธ์— ์ ํ˜€ ์žˆ๋Š” ์•ŒํŒŒ๋ฒณ๊ณผ๋Š” ๋‹ฌ๋ผ์•ผ ํ•œ๋‹ค. ์ฆ‰, ๊ฐ™์€ ์•ŒํŒŒ๋ฒณ์ด ์ ํžŒ ์นธ์„ ๋‘ ๋ฒˆ ์ง€๋‚  ์ˆ˜ ์—†๋‹ค. ์ขŒ์ธก ์ƒ๋‹จ์—์„œ ์‹œ์ž‘ํ•ด์„œ, ๋ง์ด ์ตœ๋Œ€ํ•œ ๋ช‡ ์นธ์„ ์ง€๋‚  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋ง์ด ์ง€๋‚˜๋Š” ์นธ์€ ์ขŒ์ธก ์ƒ๋‹จ์˜ ์นธ๋„ ํฌํ•จ๋œ๋‹ค. ํ’€..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ (BFS, DFS)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 9. 13. 00:01

๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰ ๊ทธ๋ž˜ํ”„๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ๊ธฐ๋ฒ•์—๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰์ธ BFS(Breadth-First Search)์™€ ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰์ธ DFS(Depth-First Search)์ด๋‹ค. BFS BFS๋Š” ํ๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค. ์„ค๋ช… ํŠธ๋ฆฌ๋กœ ์˜ˆ๋ฅผ ๋“ค์—ˆ์ง€๋งŒ, ๋ชจ๋“  ๊ทธ๋ž˜ํ”„์—์„œ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋™์ž‘ํ•œ๋‹ค. ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ queue์— ๋„ฃ๋Š”๋‹ค. queue์˜ ๋…ธ๋“œ๋ฅผ ํ•˜๋‚˜ ๊บผ๋‚ธ ํ›„, ํ•ด๋‹น ๋…ธ๋“œ์™€์˜ ์ธ์ ‘ ๋…ธ๋“œ๋ฅผ ๋ชจ๋‘ queue์— ๋„ฃ๋Š”๋‹ค. ์œ„์˜ ๋ฐฉ์‹์„ ๋ชจ๋“  ๋…ธ๋“œ๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค. stack์— ๋“ค์–ด๊ฐ„ ์ˆœ์„œ๋ฅผ ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 1=>2=>3=>4=>5=>6=>7=>8 ๋”ฐ๋ผ์„œ ํŠธ๋ฆฌ์—์„œ BFS๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํƒ์ƒ‰์„ ํ•˜๋Š” ๊ฒƒ์€ ๋ ˆ๋ฒจ ์ˆœํšŒ๋ฅผ ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค. DFS DFS๋Š” ์Šคํƒ์„ ์ด์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•œ๋‹ค. ์„ค๋ช… ํŠธ๋ฆฌ๋กœ ์˜ˆ๋ฅผ ๋“ค..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ํƒ์ƒ‰ (์„ ํ˜• ํƒ์ƒ‰, ์ด์ง„ ํƒ์ƒ‰, ํ•ด์‹œ ํƒ์ƒ‰)
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 8. 30. 23:12

ํƒ์ƒ‰ ํƒ์ƒ‰์€ ์ฃผ์–ด์ง„ ์ž๋ฃŒ๋“ค ์ค‘ ์›ํ•˜๋Š” ์กฐ๊ฑด์— ํ•ด๋‹นํ•˜๋Š” ์ž๋ฃŒ๋ฅผ ์ฐพ๋Š” ๊ณผ์ •์ด๋‹ค. ์ปดํ“จํ„ฐ์—์„œ ํƒ์ƒ‰์€ ์ž์ฃผ ์ด๋ฃจ์–ด์ง€๋ฏ€๋กœ ํšจ์œจ์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ์ด์ „์— ๋ฐฐ์› ๋˜ '์ •๋ ฌ'์€ ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ์ •๋ ฌ์€ ๋ฆฌ์ŠคํŠธ๋ฅผ ํ•˜๋‚˜์˜ ๊ธฐ์ค€์œผ๋กœ ๋‚˜ํƒ€๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋„ ์“ฐ์ด์ง€๋งŒ ์›ํ•˜๋Š” ์ž๋ฃŒ๋ฅผ ๋น ๋ฅด๊ฒŒ ํƒ์ƒ‰ํ•˜๊ธฐ ์œ„ํ•ด ์“ฐ์ด๊ธฐ๋„ ํ•œ๋‹ค. ๋ฌผ๋ก  ๊ตณ์ด ์ •๋ ฌ์ด ์•„๋‹ˆ๋”๋ผ๋„ ํƒ์ƒ‰์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์€ ์žˆ๋‹ค. ์ •๋ ฌ ๋ณด๊ธฐ ์•ž์œผ๋กœ ์†Œ๊ฐœํ•  ํƒ์ƒ‰์€ ๋‹ค์Œ์˜ 4๊ฐ€์ง€ ์ข…๋ฅ˜์ด๋‹ค. ์„ ํ˜•ํƒ์ƒ‰ ์ด์ง„ํƒ์ƒ‰ ํ•ด์‹œํƒ์ƒ‰ BST ํƒ์ƒ‰์„ ์œ„ํ•ด์„œ๋Š” ๋ฐฐ์—ด, ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ํŠธ๋ฆฌ, ๊ทธ๋ž˜ํ”„ ๋“ฑ ๋‹ค์–‘ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๊ฐ€ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋งž์ถฐ์„œ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ ๋ณด๊ธฐ ์„ ํ˜• ํƒ์ƒ‰ ์ˆœ์ฐจ ํƒ์ƒ‰์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฌ๋Š” ์„ ํ˜• ํƒ์ƒ‰์€ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์ด๋‹ค. ์„ ํ˜• ํƒ์ƒ‰..

[c++] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐœ๋…๊ณต๋ถ€ :: ํƒ์ƒ‰ - BST
์ปดํ“จํ„ฐ๊ณผํ•™ (CS)/Algorithm 2020. 8. 30. 23:09

BST BST(Binary Search Tree)๋Š” ํŠธ๋ฆฌ์˜ ํ•œ ์ข…๋ฅ˜์ด์ž ์ด์ง„ํƒ์ƒ‰์„ ์œ„ํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜์ด๋‹ค. ๊ณผ์ • BST๋ฅผ ์ด์šฉํ•œ ํƒ์ƒ‰์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ ๋งŒ๋“ค๊ธฐ (์ƒ์„ฑ) ๋ฃจํŠธ ๋…ธ๋“œ์—์„œ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ์›ํ•˜๋Š” ์š”์†Œ ์ฐพ๊ธฐ (ํƒ์ƒ‰) ์‚ญ์ œ ๋ฐ ์‚ฝ์ž… ํ•˜๊ธฐ (์‚ญ์ œ / ์‚ฝ์ž…) ์˜ˆ์‹œ ๋จผ์ € ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด๋ณด์ž. ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋Š” ๋ถ€๋ชจ ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์™ผ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์—๋Š” ๋” ์ž‘์€ ๊ฐ’์˜ ๋…ธ๋“œ๊ฐ€ ์˜ค๋ฅธ์ชฝ ์„œ๋ธŒํŠธ๋ฆฌ์—๋Š” ๋” ํฐ ๊ฐ’์˜ ๋…ธ๋“œ๊ฐ€ ์žˆ์–ด์•ผํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ์‚ฝ์ž…ํ•˜๋ฉด์„œ ์•Œ๋งž์€ ์œ„์น˜๋ฅผ ์ฐพ์•„์ฃผ๋ฉด ๋œ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‚˜์˜จ ์ด์ง„ ํƒ์ƒ‰ ํŠธ๋ฆฌ๋ฅผ ์ค‘์œ„ ์ˆœํšŒํ•˜๋ฉด ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋œ๋‹ค. ๊ทธ ๋‹ค์Œ์—๋Š” ๋ฃจํŠธ ๋…ธ๋“œ์—์„œ ๋‚ด๋ ค๊ฐ€๋ฉด์„œ ์›ํ•˜๋Š” ์š”์†Œ๋ฅผ ์ฐพ๊ณ  ์‚ญ์ œํ•ด๋ณด์ž. ์›ํ•˜๋Š” ์š”์†Œ๋Š” 6์ด๋‹ค. ์™ผ์ชฝ ๊ทธ๋ฆผ์—์„œ ์˜ค๋ฅธ์ชฝ ๊ทธ..