Skip to content

Conversation

@s13121312
Copy link
Member

@s13121312 s13121312 commented Jul 5, 2025

1. 14502

๐Ÿ”— ๋ฌธ์ œ ๋งํฌ

https://www.acmicpc.net/problem/14502

โœ”๏ธ ์†Œ์š”๋œ ์‹œ๊ฐ„

50m

โœจ ์ˆ˜๋„ ์ฝ”๋“œ

  1. ๋ฒฝ 3๊ฐœ ์„ธ์šฐ๊ธฐ
  2. bfs ๋Œ๋ฉฐ ์ตœ๋Œ€๊ฐ’ ๊ฐฑ์‹ 

๋ฒฝ 3๊ฐœ ์„ธ์šฐ๋Š” ๊ฑธ ์ฝ”๋“œ๋กœ ์–ด๋–ป๊ฒŒ ์˜ฎ๊ธธ๊นŒ ์ƒ๊ฐ์„ ํ•˜๋˜ ์ค‘์— ์ „์— idx๋ฅผ ์‚ฌ์šฉํ•ด์„œ x,y์ขŒํ‘œ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฐฉ์‹์ด ๋– ์˜ฌ๋ผ ์‚ฌ์šฉํ–ˆ์Šด๋‹ค!
dfs๋ฅผ ํ†ตํ•ด์„œ ๋ฒฝ3๊ฐœ๋ฅผ ๋งŒ๋“ค์–ด์ค€ ์ƒํƒœ์—์„œ depth๊ฐ€ 3์ด ๋ฌ์„๋•Œ ๊ทธ ์•ˆ์—์„œ bfs๋ฅผ ๋Œ์•„์„œ ์ •๋‹ต์„ ๊ฐฑ์‹ ํ•˜๋ฉด ๋˜์š”

if(arr[x][y] == 0) {
        builtwall.push_back({x, y});
        buildwall(idx+1, depth+1);
        builtwall.pop_back();
    } 
    //// ์•ˆ ์„ธ์šฐ๊ณ  ๋„˜์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ
    buildwall(idx+1, depth);

์ฒ˜์Œ์— else๋กœ buildwall(idx+1, depth);
์ด ๋ถ€๋ถ„์„ ๋นผ์„œ ์‹คํŒจํ–ˆ์—ˆ๋Š”๋ฐ ์™œ ์‹คํŒจ ํ–ˆ๋ƒ๋ฉด else๋กœ ๋นผ์„œ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋˜๋ฉด์€
์•ˆ ์„ธ์šฐ๊ณ  ๋„˜์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ๋Š” ์ฒ˜๋ฆฌ๋ฅผ ์•ˆํ•˜๊ณ  ๋ฒฝ ์„ธ์šฐ๋Š” ๊ฒฝ์šฐ๋งŒ ํƒ์ƒ‰์„ ํ•˜๊ฒŒ ๋จ

์•„๋ž˜ ๋ถ€๋ถ„์€ ๋””๋ฒ„๊น…์šฉ ๋ฐฐ์—ด์„ ํ™•์ธํ•˜๋Š” ์šฉ๋„์—์š”

int tm =bfs(tmp);
        if(ans < tm) {

            ans = tm;
            for(int i=0;i<n;i++) {
                for(int j=0;j<m;j++) {
                    ansarr[i][j] = tmp[i][j];
                }
            }
        }

๐Ÿ“š ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ๋œ ๋‚ด์šฉ

2. 2206

๐Ÿ”— ๋ฌธ์ œ ๋งํฌ

https://www.acmicpc.net/problem/2206

โœ”๏ธ ์†Œ์š”๋œ ์‹œ๊ฐ„

์ •๋‹ต ์ฐธ๊ณ (30๋ถ„ ๊ณ ๋ฏผ)

โœจ ์ˆ˜๋„ ์ฝ”๋“œ

๋ฒฝ์„ ๋ถ€์ˆœ ๊ฒฝ์šฐ, ์•ˆ ๋ถ€์ˆœ ๊ฒฝ์šฐ๋ฅผ ๋‹ค ์ƒ๊ฐํ•˜๋Š”๊ฑธ ์ฝ”๋“œ๋กœ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™˜ํ• ๊นŒ ์ƒ๊ฐํ•˜๋‹ค๊ฐ€ ์•ˆ ๋– ์˜ฌ๋ผ์„œ ๋ฐ”๋กœ ์ •๋‹ต์„ ์ฐธ๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.
int dist[1005][1005][2];
[0] ๋ฒฝ์„ ํ•˜๋‚˜๋„ ์•ˆ ๋ถ€์ˆ˜๊ณ  (x,y)๊นŒ์ง€ ์˜ค๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ๋น„์šฉ
[1] ๋ฒฝ์„ ํ•˜๋‚˜๋งŒ ๋ถ€์ˆ˜๊ณ  (x,y)๊นŒ์ง€ ์˜ค๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ๋น„์šฉ, (x,y)๊ฐ€ ๋ฒฝ์ด๋ผ์„œ ๋ถ€์ˆ˜๋Š” ๊ฒฝ์šฐ ํฌํ•จ

bfsํ‹€์€ ๋น„์Šทํ•ด์„œ ์ฃผ์„ ๋‹ฌ์•„๋†“์€๊ฒƒ์œผ๋กœ ์ดํ•ด๋˜์‹ค๊ฑฐ๊ฐ™์Šต๋‹ˆ๋‹ค!

             if(arr[nx][ny] == '0' && dist[nx][ny][broken] == -1) { //์˜จ์  ์—†๊ณ  ๋ฒฝ์ด์•„๋‹ˆ๋ฉด
                dist[nx][ny][broken] = nxtdist;
                q.push({nx,ny,broken});
            }
            if(!broken && arr[nx][ny] == '1' && dist[nx][ny][broken] == -1) { // broken์ด 0(๋ฒฝ์„ ํ•œ ๋ฒˆ๋„ ํ•œ ๋ถ€์ˆจ) ๋‹ค์Œ์— ๊ฐˆ๊ฒŒ ๋ฒฝ์ด๊ณ  ๊ฐ„ ์  ์—†์œผ๋ฉด
                dist[nx][ny][1] = nxtdist;
                q.push({nx, ny, 1});
            }

            /*์•„๋ž˜์™€ ๊ฐ™์ดํ•˜๋ฉด broken์„ ๋”ฐ๋กœ ์ฒดํฌ์•ˆํ•ด์ฃผ๋‹ˆ๊นŒ ์—ฌ๋Ÿฌ๋ฒˆ ๋ถ€์ˆ  ์ˆ˜ ์žˆ์Œ */
            // if(arr[nx][ny] == '1' && dist[nx][ny][broken] == -1) { //๋‹ค์Œ์— ๊ฐˆ๊ฒŒ ๋ฒฝ์ด๊ณ  ๊ฐ„ ์ ์—†์œผ๋ฉด
            //     dist[nx][ny][1] = nxtdist;
            //     q.push({nx, ny, 1});
            // }

๐Ÿ“š ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ๋œ ๋‚ด์šฉ

์ƒํƒœ๋ฅผ 3์ฐจ์› ๋ฐฐ์—ด์— ์ถ”๊ฐ€๋กœ ๋„ฃ๋Š” ๋ฐฉ์‹์˜ ๋ฌธ์ œ๋ฅผ ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌํ• ์ง€ ์ƒˆ๋กœ ์•Œ์•˜์–ด์š”

        int x, y, broken;
        tie(x,y,broken) = q.front();

tie๋กœ ๋ณ€์ˆ˜๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด์š”

<์ฐธ๊ณ >
https://github.com/encrypted-def/basic-algo-lecture/blob/master/0x09/solutions/2206.cpp

@s13121312 s13121312 added the ๐Ÿฅณ ๋ฆฌ๋ทฐ ํ•ด์ฃผ์„ธ์š” Improvements or additions to documentation label Jul 5, 2025
@s13121312 s13121312 self-assigned this Jul 5, 2025
@snughnu
Copy link
Contributor

snughnu commented Jul 8, 2025

์—ฐ๊ตฌ์†Œ ์˜›๋‚ ์— ์‹œ๋„ํ–ˆ์—ˆ๋Š”๋ฐ, ์ €๋Š” ๊ตฌํ˜„์ด ๋„ˆ๋ฌด ์–ด๋ ต๋”๋ผ๊ตฌ์š”
๋ฒฝ์—์„œ๋Š” 3์ฐจ์› ๋ฐฐ์—ด์“ฐ๋‹ˆ๊น ๊น”๋”ํ•˜๊ฒŒ ํ‘œํ˜„๋˜๋„ค์š”, ์ €๋Š” 2์ฐจ์› ๋ฐฐ์—ด ์“ฐ๋Š” ๊ฒƒ๋„ ๊ฐ€๋” ํ—ท๊ฐˆ๋ฆฌ๋˜๋ฐ

@s13121312
Copy link
Member Author

์—ฐ๊ตฌ์†Œ ์˜›๋‚ ์— ์‹œ๋„ํ–ˆ์—ˆ๋Š”๋ฐ, ์ €๋Š” ๊ตฌํ˜„์ด ๋„ˆ๋ฌด ์–ด๋ ต๋”๋ผ๊ตฌ์š” ๋ฒฝ์—์„œ๋Š” 3์ฐจ์› ๋ฐฐ์—ด์“ฐ๋‹ˆ๊น ๊น”๋”ํ•˜๊ฒŒ ํ‘œํ˜„๋˜๋„ค์š”, ์ €๋Š” 2์ฐจ์› ๋ฐฐ์—ด ์“ฐ๋Š” ๊ฒƒ๋„ ๊ฐ€๋” ํ—ท๊ฐˆ๋ฆฌ๋˜๋ฐ

์ €๋„ ์˜›๋‚ ์— ์‹œ๋„ํ–ˆ๋‹ค๊ฐ€ ๋ชป ํ‘ผ ๊ธฐ์–ต๋•œ์— ๋‹ค์‹œ ๋„์ „ํ–ˆ๋Š”๋ฐ ์ด๋ฒˆ์—” ์„ฑ๊ณตํ–ˆ๋„ค์š”.
ํฐ ํ‹€๋กœ ๋จผ์ € ์ƒ๊ฐํ•˜๊ณ  ๋ฒฝ 3๊ฐœ ์„ธ์šฐ๊ธฐ(dfs๋กœ ๋ฒฝ๊ณ ๋ฅด๊ธฐ) -> bfs ๋Œ๋ฉฐ ์ตœ๋Œ€๊ฐ’ ๊ฐฑ์‹ 
๊ทธ๊ฑธ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ํ’€์–ด๋‚ด์•ผํ• ์ง€ ์ƒ๊ฐ์„ ์ข€ ๋งŽ์ด ํ•˜๋ฉด ์ข‹์„๊ฑฐ๊ฐ™์•„์š”
dfs, bfs ๋ฌธ์ œ๋ฅผ ๊พธ์ค€ํžˆ ํ’€์–ด์•ผ ๊ตฌํ˜„ ๋ฌธ์ œ(์‹œ๋ฎฌ๋ ˆ์ด์…˜)๋Š” ์ต์ˆ™ํ•ด์ง€๋Š”๊ฑฐ๊ฐ™์•„์š”!

@ioo5959
Copy link
Contributor

ioo5959 commented Jul 10, 2025

์–ด๋ ค์›Œ์œ ใ… 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants