๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐“ก๐“ธ๐“ธ๐“ถ๐Ÿฃ: ๐’œ๐“๐‘”๐‘œ๐“‡๐’พ๐“‰๐’ฝ๐“‚/๐“ก๐Ÿฃ๐Ÿข๐Ÿฃ: ๐’œ๐“๐‘”๐‘œ๐“‡๐’พ๐“‰๐’ฝ๐“‚

(8)
[ALPS Study] DFS(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰) - ๋‹จ์ง€๋ฒˆํ˜ธ๋ถ™์ด๊ธฐ(BOJ 2667) ์‚ฌ์‹ค ๋‚˜ ๋ฌธ์ œ ์ œ๋Œ€๋กœ ์ฝ์ง€๋„ ์•Š๊ณ  dfs ๋ฌธ์ œ ์•„๋ฌด๊ฑฐ๋‚˜ ์ฐ์–ด์„œ ํ’€๋ ค๊ณ  ์˜ฌ๋ ค๋†“๊ณ  ์ฝ์–ด๋ณด๋‹ˆ๊นŒ ์ €๋ฒˆ ๋ฌธ์ œ๋ž‘ ๊ฑฐ์˜ ๊ทธ๋ƒฅ ์™„๋ฒฝํžˆ ๊ฐ™์€..๋ฌธ์ œ์˜€๋‹ค..ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ ์™œ ํ•œ ๊ฑฐ ์ง€...? ๋‹ค๋ฅธ ์ ์ด ์žˆ๋‹ค๋ฉด ๊ฐ ๋‹จ์ง€๋‚ด ์ง‘์˜ ์ˆ˜๋ฅผ ์ •๋ ฌํ•ด์„œ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค๋Š”๊ฑฐ..?? #define _CRT_SECURE_NO_WARNINGS #include int map[50][50] = { 0, }; int count[50] = { 0, }; int M, N, K; int cnt = 0; int end = 0; int baechu = 0; void func(); void dfs(int x, int y); void printmap(); int main() { int T; int i; scanf("%d", &T); for (i = 0; i..
[ALPS Study] DFS(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰) - ์œ ๊ธฐ๋†๋ฐฐ์ถ”(BOJ 1012) ์ž ์ด๋ฒˆ์—” ๋ฐ”๋กœ ํ’€์ง€ ์•Š๊ณ  ์–ด๋–ป๊ฒŒ ํ’€์–ด์•ผ ํ•  ์ง€ ์ƒ๊ฐํ•ด๋ณด๊ณ  ํ’€์–ด์•ผ๊ฒ ๋‹ค. ์‚ฌ์‹ค ๋‚œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€ ๋•Œ ์•ž ๋’ค ์•ˆ๊ฐ€๋ฆฌ๊ณ  ๋ฌด์ž‘์ • ์ฝ”๋“œ์งœ๋Š” ๋ฒ„๋ฆ‡์ด ์žˆ๋Š”๋ฐ ์•ˆ ์ข‹์€..๋ฒ„๋ฆ‡์ด๋‹ค.. ์šฐ์„ ์€ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›๊ณ  ์ž…๋ ฅ๋ฐ›์€๋งŒํผ ํ•จ์ˆ˜๋ฅผ ๋ฐ˜๋ณตํ•ด ์ค„ ๊ฒƒ์ด๋‹ค. int main() { int T; int i; scanf("%d", &T); for (i = 0; i < T; i++) { func(); } } ๋Œ€์ถฉ ๋ญ ์ด๋Ÿฐ์‹์œผ๋กœ! ๊ทธ๋Ÿฐ ๋‹ค์Œ์— ์ด์ œ ๋ชจ๋“ ! ์ฒ˜๋ฆฌ๋Š” func() ์ด๋ผ๋Š” ํ•จ์ˆ˜์—์„œ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์šฐ์„  M, N, K๋ฅผ ์ž…๋ ฅ๋ฐ›์•„์•ผ๊ฒ ์ง€? ๊ทธ๋ฆฌ๊ณ  map์ •๋ณด๋ฅผ ์ €์žฅํ•  map[50][50]์ด๋ผ๋Š” ๋ฐฐ์—ด๋„ ์„ ์–ธํ•ด์•ผ ํ•  ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ์— ์ด์ œ K๋ฒˆ๋งŒํผ for๋ฌธ์„ ๋Œ๋ ค์„œ ๋ฐฐ์ถ”์˜ ์œ„์น˜๋ฅผ map์— ์ €์žฅํ•  ๊ฒƒ์ด๋‹ค. void func..
[ALPS Study] DFS(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰) - ํ…€ ํ”„๋กœ์ ํŠธ(BOJ 9466) - BOJ 9466 ํ…€ ํ”„๋กœ์ ํŠธ #define _CRT_SECURE_NO_WARNINGS #include int stu[1000][100000] = { 0 }; int visit[100000] = { 0 }; int main() { int i, T; scanf("%d", &T); for (i = 0; i < T; i++){ scan(i); } for (i = 0; i < T; i++){ dfs(i, 1); } } void scan(int i) { int j, N; scanf("%d", &N); for (j = 0; j < N; j++) { scanf("%d", &stu[i][j]); } } void dfs(int i, int s) { if (visit[s] == 0) visit[s] = 1; if (vi..
[ALPS Study] ํƒ์ƒ‰ -๊ทธ๋ž˜ํ”„์™€ DFS(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰)(2) *C++์— ์žˆ๋Š” ์œ ์šฉํ•œ STL #include // vector : T type data๋ฅผ containํ•˜๋Š”, ํฌ๊ธฐ๊ฐ€ ์ •ํ•ด์ง€์ง€ ์•Š์€ ๋ฐฐ์—ด vector name; //์ด์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์„ ์–ธ name.begin() //์‹œ์ž‘ iterator(์ฃผ์†Œ ๊ฐœ๋…) ๋ฐ˜ํ™˜ name.end() //๋ iterator(๋ ์ฃผ์†Œ+1) ๋ฐ˜ํ™˜ name.size() // name์— ๋“ค์–ด์žˆ๋Š” ์›์†Œ์˜ ์ˆ˜ ๋ฐ˜ํ™˜ name.resize(int a, T b) //name์˜ ํฌ๊ธฐ๋ฅผ a๋กœ ์กฐ์ •, ๋นˆ ์นธ์€ b๋กœ ์ดˆ๊ธฐํ™”(b ์ƒ๋žต ๊ฐ€๋Šฅ, 0์œผ๋กœ ์ดˆ๊ธฐํ™”) name.empty() //name์ด ๋น„์—ˆ๋‹ค๋ฉด true, ์›์†Œ๊ฐ€ ์žˆ๋‹ค๋ฉด false ๋ฐ˜ํ™˜ name[i] //name์˜ i๋ฒˆ์งธ ์›์†Œ์— ์ ‘๊ทผ name.front() // name์˜ ์ฒซ๋ฒˆ์งธ ์›์†Œ์— ์ ‘..
[ALPS Study] ํƒ์ƒ‰ -๊ทธ๋ž˜ํ”„์™€ DFS(๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰)(1) ํƒ์ƒ‰์ด๋ž€? ํŠน์ • ๊ณต๊ฐ„์„ ๋ชจ๋‘ ๋Œ์•„๋ณด๋Š” ํ–‰์œ„ ... - ๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰(Depth FIrst Search) - ๋„ˆ๋น„ ์šฐ์„  ํƒ์ƒ‰(Breadth First Search) + ํŠธ๋ฆฌ์—์„œ์˜ ์ˆœํšŒ DFS(Depth First Search) :๊นŠ์ด ์šฐ์„  ํƒ์ƒ‰ -> ํŠน์ • ์ •์ ์—์„œ ์‹œ์ž‘ํ•ด์„œ ๋‹ค์Œ ๋ถ„๊ธฐ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์ „์— ํ•ด๋‹น ๋ถ„๊ธฐ๋ฅผ ๋ชจ๋‘ ํƒ์ƒ‰ํ•˜๋Š” ๋ฐฉ์‹. 1. ๋ฏธ๋กœ์—์„œ ๊ธธ์„ ์žƒ์—ˆ๋‹ค. ๋ฏธ๋กœ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ชจ๋ฅผ ๋•Œ, ๋ฏธ๋กœ๋ฅผ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ๋น ์ ธ๋‚˜์˜ฌ ์ˆ˜ ์žˆ์„๊นŒ? 2. ์นœ๊ตฌ๋“ค๊ณผ ์—ฌํ–‰์„ ๋– ๋‚˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ๊ฐ€๊ณ  ์‹ถ์€ ์žฅ์†Œ๋ฅผ ๋ชจ๋‘ ๋ฐฉ๋ฌธํ•œ๋‹ค ํ•  ๋•Œ ๊ฒฝ๋กœ๋ฅผ ์–ด๋–ป๊ฒŒ ํ‘œํ˜„ ํ•  ๊ฒƒ์ธ๊ฐ€? 3. "๊ทธ๋ž˜ํ”„"๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด๋ฅผ ์–ด๋–ค ์‹์œผ๋กœ ์ฝ”๋“œ์— ์ด์šฉํ•  ์ˆ˜ ์žˆ์„๊นŒ? ์ฆ‰ ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ํ•œ ๊ธธ์„ ๋”ฐ๋ผ ์ญ‰ ํŒŒ๊ณ ๋“ค๊ณ , ๊ธธ์˜ ๋์„ ๋งŒ๋‚˜๋ฉด ๋‹ค์‹œ ๊ฐˆ๋ฆผ๊ธธ๋กœ ๋˜๋Œ์•„์™€ ๋‹ค๋ฅธ ..
[ALPS Study] ์™„์ „ํƒ์ƒ‰ - N๊ณผ M(ํ•ด๊ฒฐ์ค‘) + ๋ณต์Šต ์–ด์ œ ํ’€๊ณ  ์ž๋ ค๊ณ  ํ–ˆ์ง€๋งŒ ์ถค ์—ฐ์Šต์˜ ๊ฒฐ๊ณผ๋กœ.. ๋ป—์—ˆ๊ธฐ ๋•Œ๋ฌธ์—... ์˜ค๋Š˜ ํ•œ๋‹ค.. ๋ฌผ๋ก  ์˜ค๋Š˜๋„ 5์‹œ๊ฐ„ ์—ฐ์Šตํ•˜๊ณ  ์™€์„œ ์ œ์ •์‹ ์€ ์•„๋‹˜ ๋ป—๊ธฐ ์ง์ „ ์šฐ์„  ์ด ๋ฌธ์ œ๋Š” ์—ด์‹ฌํžˆ.. ํ’€๊ณ  ์žˆ๊ณ .. ์˜ค๋Š˜ ํ•œ ๊ฑด ๊ฐ•์˜ ๋งˆ์ € ๋‹ค ๋“ฃ๊ธฐ..?? - BOJ 15649 N๊ณผ M(1) ์šฐ์„  ์ด ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ๋ญ”๊ฐ€ ๊ฐ์ด ์ž˜ ์•ˆ์™€์„œ ์˜์ƒ์„ ์ฐธ๊ณ ํ–ˆ๋‹ค. ์ฒ˜์Œ์—” ๋˜ ์„ค๋งˆ ๋ชจ๋“  ์ •์ˆ˜ ์ค‘์—์„œ ์ˆ˜์—ด ์กฐ๊ฑด ๋งŒ์กฑํ•˜๋Š” ๊ฑธ ๊ตฌํ•˜๋ผ๋Š” ๊ฑด๊ฐ€?!?! ํ–ˆ๋Š”๋ฐ ์—์ด ์„ค๋งˆ~ ํ•˜๊ณ  ์˜์ƒ ํ‹€์—ˆ๋‹ค. ์ €๋ฒˆ์—” ์—์ด ์„ค๋งˆ~ ํ–ˆ๋Š”๋ฐ ์ง„์งœ์˜€๊ณ , ์ด๋ฒˆ์—” ์•„๋‹ˆ์—ˆ๋‹ค. ์‚ฌ์‹ค์ƒ M๊ฐœ์˜ ์กฐํ•ฉ์€ M์ค‘ for๋ฌธ์„ ์ด์šฉํ•˜๋ฉด ๋˜๊ธด ํ•˜์ง€๋งŒ.. ๊ทธ๊ฑด ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์„ ๋ฐฐ๊ป˜์„œ๋Š” ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ–ˆ๋‹ค๊ณ  ํ•˜์…จ๋‹ค. ํ .. ์‚ฌ์‹ค ์—ฌ๊ธฐ๊นŒ์ง€๋งŒ ๋“ฃ๊ณ ์„œ๋Š” ๊ฐ์ด ์ž˜ ์•ˆ ์™€์„œ ์ฝ”๋“œ ์งœ๊ธฐ๊นŒ์ง€ ์ข€ ๊ณ ๋ฏผ์„ ํ–ˆ๋‹ค. (์žฌ๊ท€๋Š” ์–ด๋ ต๋‹ค) ..
[ALPS Study] ์™„์ „ํƒ์ƒ‰ - ๋ธ”๋ž™์žญ2, ์˜ํ™”๊ฐ๋… ์ˆŒ ์˜ค๋Š˜ ํ’€ ๋ฌธ์ œ๋Š” ์ด ์„ธ ๋ฌธ์ œ์˜€์ง€๋งŒ ์ƒ๊ฐ๋ณด๋‹ค ํ”„๋กœ์ ํŠธ ํšŒ์˜๊ฐ€ ๋Šฆ๊ฒŒ ๋๋‚˜์„œ ์šฐ์„  ๋ฒŒ์ ์€ ๋ฉดํ•˜๊ธฐ ์œ„ํ•ด.. ๋‘ ๋ฒˆ์งธ ๋ฌธ์ œ์ธ ์˜ํ™”๊ฐ๋… ์ˆŒ ๋ฌธ์ œ๋งŒ ๋จผ์ € ํ’€์–ด์„œ ์˜ฌ๋ ค ๋†“์•„์•ผ๊ฒ ๋‹ค... 12์‹œ ์ดํ›„์— ๋‚˜๋จธ์ง€ ๋ฌธ์ œ๋„ ํ’€์–ด๋ณผ ์˜ˆ์ •์ด๋‹ค. (๊ต‰์žฅํžˆ ์ •์‹ ์ด ์—†๋‹ค) - BOJ 2798 ๋ธ”๋ž™์žญ(2) - BOJ 1436 ์˜ํ™”๊ฐ๋… ์ˆŒ #define _CRT_SECURE_NO_WARNINGS #include int ok(int num); int main() { int N,cnt=0,i; scanf("%d", &N); for (i = 666; cnt != N; i++) { if (ok(i)) cnt++; } printf("%d", --i); } int ok(int num) { int tmp = num; int a; int cnt = 0; ..
[ALPS Study] ์™„์ „ํƒ์ƒ‰ - ํ•˜๋…ธ์ดํƒ‘, ๋ธ”๋ž™์žญ - BOJ 11729 ํ•˜๋…ธ์ดํƒ‘ #define _CRT_SECURE_NO_WARNINGS #include void hanoi(int n, int start, int mid, int end); int cnt = 0; int main() { int n; int start = 1, mid = 2, end = 3; //printf("์›ํŒ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š” : "); scanf("%d", &n); hanoi(n, start, mid, end); printf("%d\n", cnt); return 0; } void hanoi(int n, int start, int mid, int end) { if (n == 1) { cnt++; printf("%d %d\n", start, end); } else { hanoi(n -..