diff --git "a/lkhyun/202502/12 BOJ \352\263\250\353\223\2343 \353\263\264\354\212\244\353\252\254\354\212\244\355\204\260 \354\240\204\353\246\254\355\222\210.md" "b/lkhyun/202502/12 BOJ \352\263\250\353\223\2343 \353\263\264\354\212\244\353\252\254\354\212\244\355\204\260 \354\240\204\353\246\254\355\222\210.md" new file mode 100644 index 00000000..f5dbb55f --- /dev/null +++ "b/lkhyun/202502/12 BOJ \352\263\250\353\223\2343 \353\263\264\354\212\244\353\252\254\354\212\244\355\204\260 \354\240\204\353\246\254\355\222\210.md" @@ -0,0 +1,121 @@ +```java +import java.util.*; +import java.io.*; +class Node implements Comparable{ + int i; + int j; + int dist; + Node(int i, int j, int dist){ + this.i = i; + this.j = j; + this.dist = dist; + } + @Override + public int compareTo(Node o){ + return Integer.compare(this.dist,o.dist); + } +} +public class Main { + static int M; + static int N; + static int[][] map; + static List players = new ArrayList<>(); //플레이어 위치 key:i value:j + static Map damage = new HashMap<>(); //플레이어의 데미지 key:플레이어 숫자 value: 데미지 + static List arriveTime; //도착 시간 + static int bossHealth; + public static void main(String[] args) throws Exception { + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + StringTokenizer st = new StringTokenizer(br.readLine()); + M = Integer.parseInt(st.nextToken()); + N = Integer.parseInt(st.nextToken()); + int P = Integer.parseInt(st.nextToken()); + map = new int[M][N]; + arriveTime = new ArrayList<>(P); + for(int i=0;i0){ + hitPlayers++; + }else{ + break; + } + } + } + bw.write(hitPlayers+""); + bw.flush(); + } + static void BFS(int i,int j){ + Queue q = new LinkedList<>(); + boolean[][] visited = new boolean[M][N]; + q.offer(new Node(i,j,0)); + visited[i][j] = true; + + int[] di = {-1,1,0,0}; + int[] dj = {0,0,-1,1}; + while(!q.isEmpty()){ + Node cur = q.poll(); + if(map[cur.i][cur.j] == 27){ + arriveTime.add(new Node(i,j,cur.dist)); + break; + } + for(int k=0;k<4;k++){ + int newi = cur.i + di[k]; + int newj = cur.j + dj[k]; + if(newi>=0 && newi=0 && newj