Maze Search - Minimum Distance

BFS

ํ‹€๋ฆฐ ์ด์œ (ํ‹€๋ฆฐ ๋ถ€๋ถ„)

  1. scanner์˜ nextInt()์™€ nextLine()์„ ํ•จ๊ป˜ ์“ธ ๋• ๋ฐ˜๋“œ์‹œ ์ฃผ์˜ํ•ด์•ผํ•œ๋‹ค! ์•ž์—์„œ m,n์„ ์ž…๋ ฅ๋ฐ›๊ณ  ๋‚œ ํ›„ nextLine์œผ๋กœ String์„ ์ž…๋ ฅ ๋ฐ›์„ ๋•Œ, ์•ž์—์„œ ์ •์ˆ˜์™€ ๊ฐœํ–‰๋ฌธ์ž(\n)๋ฅผ ํ•จ๊ป˜ ์ž…๋ ฅํ•˜๋ฉด ๊ทธ ๋‹ค์Œ String์€ ์ด ๊ฐœํ–‰๋ฌธ์ž๋ฅผ String์œผ๋กœ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋“œ์‹œ nextLine()์„ ํ•œ๋ฒˆ ๋” ๋„ฃ์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค!

๋ฐฐ์šด ๋‚ด์šฉ

  1. ๊ฑฐ๋ฆฌ ๋ฐฐ์—ด์ด ์žˆ๋‹ค๋ฉด ์ค‘๋ณต ์ฒดํฌ ๋ฐฐ์—ด์€ ๋ถˆํ•„์š”ํ•˜๋‹ค! ์ตœ์†Œ ๊ฑฐ๋ฆฌ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•ด ๊ฑฐ๋ฆฌ๋ฅผ ์ €์žฅํ•˜๋Š” 2์ฐจ์› ๋ฐฐ์—ด์„ ๋งŒ๋“ ๋‹ค. ๋””ํดํŠธ ๊ฐ’์€ '-1'๋กœ ํ•ด์ฃผ๊ณ , ์‹œ์ž‘ํ•˜๋Š” ์œ„์น˜๋ฅผ '0'์œผ๋กœ ํ•œ๋‹ค. BFS ์ˆœํšŒํ•  ๋•Œ ์ค‘๋ณต ์ฒดํฌ ๋ฐฐ์—ด ๋Œ€์‹ , ์ด dist๋ฐฐ์—ด ๊ฐ’์ด -1์ด๋ฉด ๊ทธ ์ขŒํ‘œ์— ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š์€ ๊ฒƒ์ด๋ฏ€๋กœ, ์ธ์ ‘๋…ธ๋“œ์˜ ์ขŒํ‘œ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ฒ”์œ„์ฒดํฌ ํ›„ ์œ ํšจํ•œ ๋ฒ”์œ„ ๋‚ด๋ฉด ์ž…๋ ฅ ๋ฐฐ์—ด์—์„œ ์ด๋™๊ฐ€๋Šฅํ•œ์ง€('1'์ด๋ฉด ์ด๋™ ๊ฐ€๋Šฅ), ์ค‘๋ณต ๋ฐฉ๋ฌธ์ด ์•„๋‹Œ์ง€(dist ๊ฐ’์ด '-1') ํ™•์ธํ•ด์ฃผ๋ฉด ๋œ๋‹ค!

  2. Scanner.nextLine()์œผ๋กœ ๊ณต๋ฐฑ์—†์ด 2์ฐจ์› ๋ฐฐ์„ ์ž…๋ ฅ๋ฐ›๋Š” ๋ฐฉ๋ฒ•

    Scanner sc = new Scanner(System.in);
    int n = sc.nextInt();
    int m = sc.nextInt();
    int[][] a = new int[n][m];
    sc.nextLine();
    for(int i=0;i<n;i++){
        String s = sc.nextLine();
        for(int j=0;j<m;j++){
            a[i][j] = s.charAt(j)-'0';
        }
    }

    String ๋ฌธ์ž์—ด์—์„œ ๋ฌธ์ž ํ•˜๋‚˜ํ•˜๋‚˜๋ฅผ ์ˆซ์ž๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ƒ๊ฐ

์ผ๋‹จ, DFS๋กœ ์ด ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜๋Š” ์—†๋‹ค. DFS๋Š” ์ด๋ฆ„์—์„œ ๊ทธ๋Ÿฌํ•˜๋“ฏ, ๊นŠ์ด ์šฐ์„ ์œผ๋กœ ํƒ์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— BFS๋กœ ํƒ์ƒ‰ํ•˜๋ฉด์„œ ํ˜„์žฌ ์œ„์น˜(x,y)์—์„œ๋ถ€ํ„ฐ ๊ฑฐ๋ฆฌ๋ฅผ ๊ธฐ๋กํ•˜์—ฌ ๋งˆ์ง€๋ง‰์— ๊ฑฐ๋ฆฌ ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์นธ์ธ (n-1,m-1)์˜ ๊ฐ’์ด ์ตœ์†Œ ๊ฑฐ๋ฆฌ ์ •๋‹ต์ด ๋œ๋‹ค.

Q. ์—ฌ๋Ÿฌ๋ฒˆ BFS ํƒ์ƒ‰์„ ํ•˜๊ณ , ๊ทธ์ค‘ (n-1,m-1) ์— ์ด๋ฅด๋Š” ๊ฐ’์ด ๊ฐ€์žฅ ์ž‘์€ BFS๋ฅผ ์ฐพ๋Š” ๊ฒƒ ์•„๋‹Œ๊ฐ€?

A. BFS๋Š” ํ•œ๋ฒˆ์— ์ƒ,ํ•˜,์ขŒ,์šฐ์— ์ธ์ ‘ํ•ด์žˆ๋Š” ๋…ธ๋“œ๋“ค์„ ํ์— ๋„ฃ๋Š”๋‹ค. n๋ฒˆ์— ๊ฑธ์ณ ํ์— ๋…ธ๋“œ๋ฅผ ๋„ฃ๋Š”๋‹ค๋ฉด ๊ฑฐ๋ฆฌ๊ฐ€ n์ธ ๋…ธ๋“œ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. (0,0)์—์„œ (x,y)๊นŒ์ง€ ์ด๋ฅด๋Š” ๊ฑฐ๋ฆฌ๊ฐ’์„ 2์ฐจ์› ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค๋ฉด (x,y)๊นŒ์ง€์˜ ์ตœ์†Œ ๊ฑฐ๋ฆฌ๊ฐ€ ๋œ๋‹ค!

Last updated

Was this helpful?