์šฐ๊ทœ์ด์ธ์šฐ์œค
Eager To Learn ๐ŸŒŒ
์šฐ๊ทœ์ด์ธ์šฐ์œค
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿก ํ™ˆ
  • ๐Ÿš€ ๊นƒํ—ˆ๋ธŒ
  • โ›… ํƒœ๊ทธ ํด๋ผ์šฐ๋“œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (217)
    • ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm ๊ธฐ๋ฒ• (1)
      • ๋ฐ”ํ‚น๋… (21)
    • ๋ธ”๋กœ๊ทธ ์ด์‚ฌ (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • ์ž๋ฃŒ๊ตฌ์กฐ (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • ๊ฐœ๋ฐœ์„œ์  (15)
      • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (1)
      • ์˜ค๋ธŒ์ ํŠธ - ์กฐ์˜ํ˜ธ (7)
      • ์นœ์ ˆํ•œ SQL ํŠœ๋‹ (7)
    • ํšŒ๊ณ  (2)
hELLO ยท Designed By ์ •์ƒ์šฐ.
์šฐ๊ทœ์ด์ธ์šฐ์œค

Eager To Learn ๐ŸŒŒ

๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/JAVA

[JAVA] 2021 ์นด์นด์˜ค ์ฑ„์šฉ์—ฐ๊ณ„ํ˜• ์ธํ„ด์‹ญ ใ€๊ฑฐ๋ฆฌ๋‘๊ธฐ ํ™•์ธํ•˜๊ธฐใ€‘

2023. 5. 10. 16:22


๋งจํ•ดํŠผ ๊ฑฐ๋ฆฌ๊ฐ€ ์‚ฌ์‹ค์ƒ, ํ…Œ์ด๋ธ”์„ ์ œ์™ธํ•œ ๋‘ ์‘์‹œ์ž ์‚ฌ์ด์˜ ๊ฒฉ์ž ๊ฑฐ๋ฆฌ์ด๋ฏ€๋กœ

 

๊ฐ ๋ฃธ๋งˆ๋‹ค, ์‘์‹œ์ž(P)๊ฐ€ ๋ฐœ๊ฒฌ๋์„ ๋•Œ bfs()๋ฅผ ์‹คํ–‰์‹œ์ผœ ๊ทธ ์‘์‹œ์ž์™€ ๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ๋‹ค๋ฅธ ์‘์‹œ์ž๋ฅผ ์ฐพ์„๋•Œ๊นŒ์ง€ ๋ฃจํ”„๋ฌธ์„ ๋Œ๋ฆฌ๊ณ  ๋ฐœ๊ฒฌ๋˜๋ฉด ๊ฑฐ๋ฆฌ๋ฅผ ๋ฆฌํ„ดํ•˜๋„๋ก bfs()๋ฅผ ๊ตฌํ˜„ํ•˜์˜€๋‹ค.

 

๊ฐ€์žฅ ๊ฐ€๊นŒ์šด ์‘์‹œ์ž์˜ ๊ฑฐ๋ฆฌ๊ฐ€ 2์ดํ•˜์ธ์ง€ ์ฒดํฌํ•œ ๋’ค, 2์ดํ•˜๋ผ๋ฉด 0์„ ๊ธฐ๋กํ•˜๋„๋ก ๋กœ์ง์„ ๊ตฌ์„ฑํ•˜์˜€๋‹ค.


 

import java.util.*;
class Solution {
    String[][] map;
    boolean[][] checked;
    Queue<int[]> q;
    int[] dr = {1,-1,0,0};
    int[] dc= {0,0,1,-1};
    public int[] solution(String[][] places) {
        int[] answer = new int[5];
        Arrays.fill(answer,1);

        for(int i=0;i<places.length;i++){
            setMap(places[i]);

            boolean flag = false;

            for(int j=0;j<5;j++){
                for(int k=0;k<5;k++){
                    if(map[j][k].equals("P")){
                        q = new LinkedList<>();
                        checked = new boolean[5][5];
                        q.offer(new int[]{j,k,0});
                        int result = bfs();
                        if((0<result&&result<=2)){
                            flag = true;
                        }
                    }
                }
            }
            if(flag){
                answer[i]=0;
            }
        }
        return answer;
    }

    int bfs(){
        while(!q.isEmpty()){
            int[] point = q.poll();
            int r=point[0];
            int c=point[1];

            int dist=point[2];
            checked[r][c]=true;

            for(int i=0;i<4;i++){
                int nr = r+dr[i];
                int nc = c+dc[i];
                if(0<=nr && nr<5 && 0<=nc && nc<5 && !checked[nr][nc] && !map[nr][nc].equals("X")){
                    q.offer(new int[]{nr,nc,dist+1});
                    if(map[nr][nc].equals("P")){
                        return dist+1;
                    }
                }
            }
        }
        return -1;

    }

    void setMap(String[] place){
        map = new String[5][5];

        for(int r=0;r<5;r++){

            String[] info = place[r].split("");

            for(int c=0;c<5;c++){
                map[r][c]=info[c];
            }

        }
    }
}
    '๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • ๋ฌธ์ž์—ด ์ˆ˜์‹ ๊ณ„์‚ฐํ•˜๋Š” ๋ฉ”์„œ๋“œ ๋งŒ๋“ค๊ธฐ
    • [JAVA] 2021 KAKAO BLIND RECRUITMENT ใ€ํ•ฉ์Šน ํƒ์‹œ ์š”๊ธˆใ€‘
    • [JAVA] 2020 ์นด์นด์˜ค ์ธํ„ด์‹ญ ใ€์ˆ˜์‹ ์ตœ๋Œ€ํ™”ใ€‘
    • [JAVA] 2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ ใ€์ง•๊ฒ€๋‹ค๋ฆฌ ๊ฑด๋„ˆ๊ธฐใ€‘
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ๊ฐœ๋ฐœ์ž ๊ฟˆ๋‚˜๋ฌด

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”