๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

BFS11

[C++/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ฒฝ์ฃผ๋กœ ๊ฑด์„ค (2020 ์นด์นด์˜ค ์ธํ„ด์‹ญ) ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/67259 ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๊ฒฝ์ฃผ๋กœ ๊ฑด์„ค [[0,0,0,0,0,0,0,1],[0,0,0,0,0,0,0,0],[0,0,0,0,0,1,0,0],[0,0,0,0,1,0,0,0],[0,0,0,1,0,0,0,1],[0,0,1,0,0,0,1,0],[0,1,0,0,0,1,0,0],[1,0,0,0,0,0,0,0]] 3800 [[0,0,1,0],[0,0,0,0],[0,1,0,1],[1,0,0,0]] 2100 [[0,0,0,0,0,0],[0,1,1,1,1,0],[0,0,1,0,0,0],[1,0,0,1,0,1],[ programmers.co.kr ๋ฌธ์ œ๋ฅผ ์š”์•ฝํ•˜์ž๋ฉด, ์ •์‚ฌ๊ฐํ˜• ๋ชจ์–‘์˜ board์—์„œ (0, 0)์—์„œ (N-1, N-.. 2022. 1. 18.
[C++/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‹จ์–ด ๋ณ€ํ™˜ ๋ฌธ์ œ https://programmers.co.kr/learn/courses/30/lessons/43163 ๋‘ ๊ฐœ์˜ ๋‹จ์–ด begin, target๊ณผ ๋‹จ์–ด์˜ ์ง‘ํ•ฉ words๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ๊ทœ์น™์„ ์ด์šฉํ•˜์—ฌ begin์—์„œ target์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฐ€์žฅ ์งง์€ ๋ณ€ํ™˜ ๊ณผ์ •์„ ์ฐพ์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. 1. ํ•œ ๋ฒˆ์— ํ•œ ๊ฐœ์˜ ์•ŒํŒŒ๋ฒณ๋งŒ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2. words์— ์žˆ๋Š” ๋‹จ์–ด๋กœ๋งŒ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด begin์ด "hit", target๊ฐ€ "cog", words๊ฐ€ ["hot","dot","dog","lot","log","cog"]๋ผ๋ฉด "hit" -> "hot" -> "dot" -> "dog" -> "cog"์™€ ๊ฐ™์ด 4๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ๋‹จ์–ด begin, target๊ณผ ๋‹จ์–ด์˜ .. 2022. 1. 12.
[๋ฐฑ์ค€/C++] 1941. ์†Œ๋ฌธ๋‚œ ์น ๊ณต์ฃผ ๋ฌธ์ œ https://www.acmicpc.net/problem/1941 1941๋ฒˆ: ์†Œ๋ฌธ๋‚œ ์น ๊ณต์ฃผ ์ด 25๋ช…์˜ ์—ฌํ•™์ƒ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์—ฌํ•™์ƒ๋ฐ˜์€ 5*5์˜ ์ •์‚ฌ๊ฐํ˜• ๊ฒฉ์ž ํ˜•ํƒœ๋กœ ์ž๋ฆฌ๊ฐ€ ๋ฐฐ์น˜๋˜์—ˆ๊ณ , ์–ผ๋งˆ ์ง€๋‚˜์ง€ ์•Š์•„ ์ด๋‹ค์†œ๊ณผ ์ž„๋„์—ฐ์ด๋ผ๋Š” ๋‘ ํ•™์ƒ์ด ๋‘๊ฐ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ๋‹ค๋ฅธ ํ•™์ƒ๋“ค์„ ํœ˜์–ด์žก๊ธฐ ์‹œ์ž‘ www.acmicpc.net ์ด 25๋ช…์˜ ์—ฌํ•™์ƒ๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ์—ฌํ•™์ƒ๋ฐ˜์€ 5*5์˜ ์ •์‚ฌ๊ฐํ˜• ๊ฒฉ์ž ํ˜•ํƒœ๋กœ ์ž๋ฆฌ๊ฐ€ ๋ฐฐ์น˜๋˜์—ˆ๊ณ , ์–ผ๋งˆ ์ง€๋‚˜์ง€ ์•Š์•„ ์ด๋‹ค์†œ๊ณผ ์ž„๋„์—ฐ์ด๋ผ๋Š” ๋‘ ํ•™์ƒ์ด ๋‘๊ฐ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ ๋‹ค๋ฅธ ํ•™์ƒ๋“ค์„ ํœ˜์–ด์žก๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ๊ณง ๋ชจ๋“  ์—ฌํ•™์ƒ์ด ‘์ด๋‹ค์†œํŒŒ’์™€ ‘์ž„๋„์—ฐํŒŒ’์˜ ๋‘ ํŒŒ๋กœ ๊ฐˆ๋ผ์ง€๊ฒŒ ๋˜์—ˆ์œผ๋ฉฐ, ์–ผ๋งˆ ์ง€๋‚˜์ง€ ์•Š์•„ ‘์ž„๋„์—ฐํŒŒ’๊ฐ€ ์„ธ๋ ฅ์„ ํ™•์žฅ์‹œํ‚ค๋ฉฐ ‘์ด๋‹ค์†œํŒŒ’๋ฅผ ์œ„ํ˜‘ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. ์œ„๊ธฐ์˜์‹์„ ๋Š๋‚€ ‘์ด๋‹ค์†œํŒŒ’์˜ ํ•™์ƒ๋“ค์€ ๊ณผ๊ฐํžˆ.. 2021. 8. 24.
[C++/๋ฐฑ์ค€] 17244. ์•„๋งž๋‹ค์šฐ์‚ฐ ๋ฌธ์ œ https://www.acmicpc.net/problem/17244 17244๋ฒˆ: ์•„๋งž๋‹ค์šฐ์‚ฐ ๊ฒฝ์žฌ์”จ๋Š” ์ €๋… ์•ฝ์†์„ ๊ฐ€๊ธฐ ์ „ ์ฑ™๊ธฐ์ง€ ์•Š์€ ๋ฌผ๊ฑด๋“ค์ด ์žˆ๋Š” ์ง€ ํ™•์ธํ•˜๊ณ  ์žˆ๋‹ค. ํ•„์š”ํ•œ ๋ฌผ๊ฑด์€ ์ „๋ถ€ ์ฑ™๊ธด ๊ฒƒ ๊ฐ™์•˜๊ณ  ์™ธ์ถœ ํ›„ ๋Œ์•„์˜ค๋Š” ๊ธธ์— ๊ฒฝ์žฌ์”จ๋Š” ์™ธ์ณค๋‹ค. "์•„ ๋งž๋‹ค ์šฐ์‚ฐ!!!" ๊ฒฝ์žฌ ์”จ๋Š” ๋งค๋ฒˆ ์™ธ์ถœ www.acmicpc.net 2์ฐจ์› ๋งต์—์„œ, ์ถœ๋ฐœ์—์„œ ๋„์ฐฉ์ ์œผ๋กœ ๊ฐ€๋Š”๋ฐ, X๋กœ ํ‘œ์‹œ๋œ ํ•„์š”ํ•œ ๋ฌผ๊ฑด๋“ค์„ ๋ชจ๋‘ ์ฑ™๊ฒจ์„œ ๋‚˜๊ฐ€๋Š” ์ตœ์†Œ ์ด๋™๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ํ’€์ด ๊ทธ๋ž˜ํ”„์ƒ์—์„œ ์ตœ์†Œ ์ด๋™ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๊ธฐ ๋•Œ๋ฌธ์— BFS๋ฅผ ์ด์šฉํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ , ๊ทธ๋ž˜ํ”„์ƒ์— X๊ฐ€ ์žˆ๋Š” ์ง€์ ์„ ๋ชจ๋‘ ๋ฐฉ๋ฌธํ•˜๋Š”๊ฒŒ ์กฐ๊ฑด์ด๊ธฐ ๋•Œ๋ฌธ์— X๋ฐฉ๋ฌธ์ฒดํฌ๋ฅผ ์–ด๋–ป๊ฒŒ ํ• ์ง€ ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€, X๊ฐ€ ์ตœ๋Œ€ 5๊ฐœ๋ผ๊ณ  ํ•ด์„œ ๊ธธ์ด 5์งœ๋ฆฌ ๋น„ํŠธ๋งˆ์Šคํฌ๋ฅผ ์ด์šฉํ•ด์„œ ๋ฐฉ๋ฌธ์ฒดํฌ๋ฅผ ํ•ด์ฃผ.. 2021. 8. 3.
[๋ฐฑ์ค€/C++] 1600. ๋ง์ด ๋˜๊ณ ํ”ˆ ์›์ˆญ์ด ๋ฌธ์ œ https://www.acmicpc.net/problem/1600 1600๋ฒˆ: ๋ง์ด ๋˜๊ณ ํ”ˆ ์›์ˆญ์ด ์ฒซ์งธ ์ค„์— ์ •์ˆ˜ K๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์— ๊ฒฉ์žํŒ์˜ ๊ฐ€๋กœ๊ธธ์ด W, ์„ธ๋กœ๊ธธ์ด H๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ ๋‹ค์Œ H์ค„์— ๊ฑธ์ณ W๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ง€๋Š”๋ฐ, 0์€ ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” ํ‰์ง€, 1์€ ์žฅ์• ๋ฌผ์„ ๋œปํ•œ๋‹ค. ์žฅ์• ๋ฌผ์ด ์žˆ www.acmicpc.net ํ’€์ด [BFS + ๊ตฌ์กฐ์ฒด] BFS๋ฅผ ์ด์šฉํ•ด์„œ ํ’€๋ฉด ๋˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. ์ผ๋ฐ˜์ ์ธ BFS์—์„œ, ์ƒํ•˜์ขŒ์šฐ๋กœ ์ด๋™ํ•˜๋Š” ๊ฒƒ๋งŒ์„ ๊ณ ๋ คํ–ˆ๋‹ค๋ฉด, ์ด ๋ฌธ์ œ์—์„œ๋Š” "๋ง ์ฒ˜๋Ÿผ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ"๋„ ๊ณ ๋ คํ•ด์„œ BFS๋ฅผ ๋Œ๋ ค์ฃผ๋ฉด ๋˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. ๋‹ค๋งŒ "๋ง ์ฒ˜๋Ÿผ ์›€์ง์ผ ์ˆ˜ ์žˆ๋Š” ํšŸ์ˆ˜"๊ฐ€ K๋ฒˆ์œผ๋กœ ์ •ํ•ด์ ธ์žˆ์œผ๋ฏ€๋กœ, ๋‚จ์€ ํšŸ์ˆ˜ k๋„ ํ์— ๋„ฃ์–ด ํ™•์ธํ•ด์ฃผ์—ˆ๋‹ค. * ์ฒ˜์Œ์— visited๋ฐฐ์—ด์„ 2์ฐจ์›์œผ๋กœ ๋งŒ๋“ค์–ด์„œ .. 2021. 6. 29.
[๋ฐฑ์ค€/C++] 1194. ๋‹ฌ์ด ์ฐจ์˜ค๋ฅธ๋‹ค, ๊ฐ€์ž ๋ฌธ์ œ https://www.acmicpc.net/problem/1194 0์—์„œ ์ถœ๋ฐœํ•˜์—ฌ 1๊นŒ์ง€ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ตœ๋‹จ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. #์€ ์ง€๋‚˜๊ฐˆ ์ˆ˜ ์—†๊ณ , a~f๋Š” ์—ด์‡ , A~F๋Š” ๋ฌธ์ด๋ฉฐ ๊ฐ ๋ฌธ์„ ์ง€๋‚˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•ด๋‹นํ•˜๋Š” ์†Œ๋ฌธ์ž ์—ด์‡ ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผํ•œ๋‹ค. ํ’€์ด ์—ด์‡ ์™€ ๋ฌธ์ด๋ผ๋Š” ์š”์†Œ๊ฐ€ ์ถ”๊ฐ€๋˜๊ธฐ๋Š” ํ–ˆ์ง€๋งŒ, ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” BFS๋ฅผ ์ด์šฉํ•˜์—ฌ ์ตœ๋‹จ๊ฒฝ๋กœ๋ฅผ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ๊ตฌ์กฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด์„œ BFS๋ฅผ ๋Œ๋ฆฌ๋Š”๊ฒƒ ๊นŒ์ง€๋Š” ๋น„๊ต์ ์œผ๋กœ ๊ธˆ๋ฐฉ ํ•  ์ˆ˜ ์žˆ์—ˆ๋Š”๋ฐ, ๋ฉ”๋ชจ๋ฆฌ์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋‹ค. visited๋ฐฐ์—ด์„ visited[2][2][2][2][2][2][51][51]๋กœ ๋งŒ๋“ค๊ณ , ๊ตฌ์กฐ์ฒด์— 6์นธ์งœ๋ฆฌ vector๋ฅผ ๋„ฃ์–ด์„œ ๊ทธ๋Ÿฐ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ๊ฒ€์ƒ‰์„ ํ•ด๋ณด๋‹ˆ, ์—ด์‡  ๊ด€๋ จ ๋ถ€๋ถ„์„ "๋น„ํŠธ๋งˆ์Šคํ‚น"์œผ๋กœ ํ•ด๊ฒฐํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค. ๋”ฐ๋ผ์„œ visited๋ฐฐ์—ด์„.. 2021. 6. 2.
[๋ฐฑ์ค€/C++] 9019. DSLR ๋ฌธ์ œ https://www.acmicpc.net/problem/9019 ํ’€์ด BFS๋ฅผ ์ด์šฉํ–ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ 0 ~ 9999 ๊นŒ์ง€ ์˜€๊ธฐ ๋•Œ๋ฌธ์—, 10000ํฌ๊ธฐ์˜ visited ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด ์ด์šฉํ–ˆ๋‹ค. ์ฒ˜์Œ์— L๊ณผ R์„ ์ˆซ์ž๋ฅผ String์œผ๋กœ ๋ฐ”๊พธ์–ด์„œ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•ด์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚˜์™”๋‹ค. ๊ต‰์žฅํžˆ ์‚ฌ์†Œํ•œ ๋ถ€๋ถ„์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ํ…Œ์ŠคํŠธ์ผ€์ด์Šค๋ฅผ ๋งŽ์ด ์ง‘์–ด๋„ฃ์„ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์‹์ด๋ผ์„œ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋‚œ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ฆฌ๊ณ  main์— cin, cout ์ž…์ถœ๋ ฅ ์‹œ๊ฐ„์„ ์ค„์ด๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋”๋‹ˆ ์‹œ๊ฐ„์ด ์•„์ฃผ ์กฐ๊ธˆ ๋” ์ค„์—ˆ๋‹ค. ์ฝ”๋“œ #include #include #include using namespace std; #define MAX 10000 bool visited[MAX]; string BFS(int A, i.. 2021. 5. 26.
[๋ฐฑ์ค€/C++] 1525. ํผ์ฆ ๋ฌธ์ œ https://www.acmicpc.net/problem/1525 ํ’€์ด BFS๋ฅผ ์ด์šฉํ•ด์„œ ํ’€์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ตฌ์กฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด, ํ์— ๊ตฌ์กฐ์ฒด๋ฅผ ๋„ฃ๋Š” ๋ฐฉ์‹์œผ๋กœ BFS๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ์‹œ๋„ ๋ฐฉ๋ฌธ์ฒดํฌ๋ฅผ 876543211 ํฌ๊ธฐ์˜ ๋ฐฐ์—ด ์ด์šฉ ๊ตฌ์กฐ์ฒด ์•ˆ์— int 3๊ฐœ(r, c, count), 3x3 vector ํ•œ ๊ฐœ → ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ ! ๋‘ ๋ฒˆ์งธ ์‹œ๋„ ๊ตฌ์กฐ์ฒด์— ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒƒ๋“ค์ด ๋“ค์–ด์žˆ๋Š”๊ฒŒ ๋ฌธ์ œ์ธ๊ฐ€ ์‹ถ์–ด์„œ, ๊ตฌ์กฐ์ฒด์•ˆ์— int 1๊ฐœ, string 1๊ฐœ๋งŒ ๋„ฃ๋„๋ก ํ–ˆ๋‹ค. → ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ ! ์ตœ์ข… ์‹œ๋„ ๋ฐฉ๋ฌธ ์ฒดํฌ๋ฅผ string set์„ ์ด์šฉํ•ด์„œ ํ–ˆ๋‹ค. 876543211ํฌ๊ธฐ์˜ visited ๋ฐฐ์—ด์„ ๋งŒ๋“  ๊ฒƒ ์ž์ฒด๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ์˜ ์›์ธ์ธ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ์ฝ”๋“œ #include #include #include #include #i.. 2021. 5. 26.
[๋ฐฑ์ค€/C++] 2589. ๋ณด๋ฌผ์„ฌ ๋ฌธ์ œ https://www.acmicpc.net/problem/2589 ์œก์ง€์™€ ๋ฐ”๋‹ค๋กœ ์ด๋ฃจ์–ด์ง„ nxm ๋งต์—์„œ ์œก์ง€์—์„œ ์‹œ์ž‘ํ•ด์„œ, ๋ฐ”๋‹ค๋ฅผ ๊ฑฐ์น˜์ง€ ์•Š๊ณ  ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๋จผ ์œก์ง€๊นŒ์ง€์˜ ์ตœ๋‹จ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค. ํ’€์ด BFS๋ฅผ ์ด์šฉํ•ด์„œ ํ’€์—ˆ๋‹ค! ๋˜ํ•œ, ๋ชจ๋“  ์œก์ง€๊ฐ€ ์‹œ์ž‘์ ์ด ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์™„์ „ํƒ์ƒ‰์ด๊ธฐ๋„ ํ•˜๋‹ค. ๋ชจ๋“  ์œก์ง€์—์„œ BFS๋ฅผ ๋Œ๋ ค์„œ, ๋‹ค๋ฅธ ์œก์ง€๊นŒ์ง€์˜ ์ตœ๋‹จ๊ฒฝ๋กœ๋ฅผ ๋ชจ๋‘ ๊ตฌํ•ด์„œ ๊ทธ ์ค‘์— ์ตœ๋Œ“๊ฐ’์„ ์ถœ๋ ฅํ–ˆ๋‹ค. ์ฝ”๋“œ #include #include using namespace std; int dr[4] = { -1,1,0,0 }; int dc[4] = { 0,0,-1,1 }; int map[52][52] = { 0, }; int cache[52][52] = { 0, }; int max_dist = 0; vo.. 2021. 5. 19.
๋ฐ˜์‘ํ˜•