í°ì¤í 리 ë·°
ì¶ì² : https://www.acmicpc.net/problem/2638
2638ë²: ì¹ì¦
첫째 ì¤ìë 모ëì¢ ì´ì í¬ê¸°ë¥¼ ëíë´ë ë ê°ì ì ì N, M (5 ≤ N, M ≤ 100)ì´ ì£¼ì´ì§ë¤. ê·¸ ë¤ì Nê°ì ì¤ìë 모ëì¢ ì´ ìì 격ìì ì¹ì¦ê° ìë ë¶ë¶ì 1ë¡ íìëê³ , ì¹ì¦ê° ìë ë¶ë¶ì 0ì¼ë¡
www.acmicpc.net



ð Solve
í´ë¹ 문ì ì í¨í¤ì§ì¸ 골ë5 2636 ì¹ì¦ì ê°ì´ íì´ë³´ë©´ ì¢ì 문ì ì ëë¤.
2636 ì¹ì¦ë¬¸ì ë ìë í¬ì¤í ì ì°¸ê³ íìë©´ ì¢ì ê² ê°ìµëë¤!
2022.03.30 - [ìê³ ë¦¬ì¦/ë°±ì¤] - [BOJ] ë°±ì¤ 2636 ì¹ì¦ (JAVA)
[BOJ] ë°±ì¤ 2636 ì¹ì¦ (JAVA)
ì¶ì² : https://www.acmicpc.net/problem/2636 2636ë²: ì¹ì¦ 첫째 ì¤ìë ì¬ê°í 모ì íì ì¸ë¡ì ê°ë¡ì 길ì´ê° ìì ì ìë¡ ì£¼ì´ì§ë¤. ì¸ë¡ì ê°ë¡ì 길ì´ë ìµë 100ì´ë¤. íì ê° ê°ë¡ì¤ì 모ìì´ ì ì¤ë¶
odingcoding.tistory.com
2636문ì ì ì´ ë¬¸ì 모ë 공기를 기ì¤ì¼ë¡ bfsíìì íë©´ ëë 문ì ì´ì§ë§, ë¤ë¥¸ ì ì ì´ ë¬¸ì ë ê° ì¹ì¦ 격ìì 4ë³ ì¤ìì ì ì´ë 2ë³ ì´ìì´ ì¤ë´ì¨ëì 공기ì ì ì´í´ì¼ ì¹ì¦ê° ë ¹ì ìì´ì§ë ì ì ëë¤.
ë°ë¼ì ì´ ë¬¸ì ìì ê°ì¥ ì¤ìí í¬ì¸í¸ë, ì¹ì¦ë¥¼ ë°ë¡ ë ¹ì´ì§ ìê³ , í´ë¹ í´ì´ ë¤ ë í! ê·¸ë 모ìì í ë²ì ì§ì°ë ê²ì ëë¤!!
ì¹ì¦ë¥¼ ë°ë¡ ì§ì°ì§ ìë ì´ì ë, ë§ì½ ìì ì¹ì¦ê° 먼ì ì§ìì ¸ 0(공기)ì´ ëìì¼ë©´, ë¤ì ì¹ì¦ë¥¼ íìí ë ìí¥ì 주기 ë문ì ëë¤.
모ëì¢ ì´ì 맨 ê°ì¥ì리ìë ì¹ì¦ê° ëì´ì§ ìëë¤ê³ íì¼ë¯ë¡, (0,0) ëë ë¤ë¥¸ í ë리 ì§ì ììë¶í° bfs를 íìí ì ììµëë¤.
ì ë ¥ë°ì ëë¶í° ì¹ì¦ì ê°ì를 ì¸ì´ì£¼ì´ countCheese ë³ìì ì ì¥í©ëë¤.
while문ì íµí´ ì¹ì¦ì ê°ìê° ë¨ììë¤ë©´ bfsíìì ë°ë³µí©ëë¤.
bfsììë ë¤ì ìì¹ê° ì¹ì¦ë¼ë©´ ì¹ì¦ë¥¼ ë°ë¡ ë ¹ì´ì§ ìê³ , í´ë¹ mapë°°ì´ì 1 ì¦ê°ìì¼ì¤ëë¤.
bfs를 í í´ ë¤ ëìë¤ë©´ mapë°°ì´ì ì ì²´ íìí©ëë¤.
mapë°°ì´ì 3 ì´ìì ê°ì´ ì ì¥ëì´ ìë¤ë©´, 2ë©´ ì´ìì´ ê³µê¸°ì ì ì´ë ì¹ì¦ ìì¹ ì´ë¯ë¡, ì¹ì¦ì ê°ì를 ê°ììí¤ê³ , 공기(0)ë¡ ì´ê¸°íí©ëë¤.
1ì´ë 2ì ê°ì¼ë¡ ë ¹ì§ ìê³ ë¨ììë ì¹ì¦ë ë¤ì í´ì ìí¥ì´ ìëë¡ ë¤ì ì¹ì¦(1)ë¡ ì´ê¸°í í©ëë¤.
í´ë¹ 문ì ì ë¹ì·íê², bfs를 íìíë©° 모ìëìë¤ í ë²ì ì§ì°ë 문ì ë¡ ë¤ì 문ì ë íì´ë³´ìë©´ ì¢ì ê² ê°ìµëë¤.
https://www.acmicpc.net/problem/2573
2573ë²: ë¹ì°
첫 ì¤ìë ì´ì°¨ì ë°°ì´ì íì ê°ìì ì´ì ê°ì를 ëíë´ë ë ì ì Nê³¼ Mì´ í ê°ì ë¹ì¹¸ì ì¬ì´ì ëê³ ì£¼ì´ì§ë¤. Nê³¼ Mì 3 ì´ì 300 ì´íì´ë¤. ê·¸ ë¤ì Nê°ì ì¤ìë ê° ì¤ë§ë¤ ë°°ì´ì ê° íì
www.acmicpc.net
â Code
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;
public class Main {
static int R, C;
static int[][] map;
static boolean[][] visited;
static int[] dr = {-1, 1, 0, 0};
static int[] dc = {0, 0, -1, 1};
static int countCheese;
static int day;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
R = Integer.parseInt(st.nextToken());
C = Integer.parseInt(st.nextToken());
map = new int[R][C];
for(int i=0;i<R;i++){
st = new StringTokenizer(br.readLine());
for(int j=0;j<C;j++){
int temp = Integer.parseInt(st.nextToken());
map[i][j] = temp;
if(temp==1) countCheese++; //ì´ê¸° ì¹ì¦ ê°ì ì¸ê¸°
}
}
while(countCheese>0){ //ì¹ì¦ ë¨ìì¼ë©´ ë°ë³µ
day++;
bfs();
}
System.out.println(day);
}
private static void bfs(){
Queue<Pos> queue = new LinkedList<>();
visited = new boolean[R][C];
queue.add(new Pos(0, 0));
visited[0][0] = true;
while(!queue.isEmpty()){
Pos cur = queue.poll();
for(int d=0;d<4;d++){
int nr = cur.r+dr[d];
int nc = cur.c+dc[d];
if(!isIn(nr, nc)) continue;
if(visited[nr][nc]) continue;
if(map[nr][nc]!=0){ //ë¤ì ìì¹ê° ì¹ì¦ë¼ë©´
map[nr][nc]++; //ì¹ì¦ ìì¹ ê° -1
}else{
visited[nr][nc] = true;
queue.add(new Pos(nr, nc)); //ë¤ì ìì¹ê° 공기ë¼ë©´ ìì¹ì´ë
}
}
}
for(int i=0;i<R;i++){
for(int j=0;j<C;j++){
if(map[i][j]==1 || map[i][j]==2){ //1ì´ê±°ë 2ì¬ì ë
¹ì§ ìì ê²ë¤ì
map[i][j] = 1; //ë¤ì í´ ìí¥ ìê² ë¤ì ì¹ì¦ê°ì¸ 1ë¡ ì´ê¸°í
}
if(map[i][j]>=3){ //3ì´ìì¸ ê³³ìì
countCheese--; //ì¹ì¦ ë
¹ì´ê³
map[i][j] = 0; //ê³µê¸°ë¡ ì´ê¸°í
}
}
}
}
private static boolean isIn(int r, int c){
return r>=0 && c>=0 && r<R && c<C;
}
private static class Pos{
int r;
int c;
public Pos(int r, int c) {
this.r = r;
this.c = c;
}
}
}'ìê³ ë¦¬ì¦ > ë°±ì¤' ì¹´í ê³ ë¦¬ì ë¤ë¥¸ ê¸
- TAG
- BFS, BOJ, Java, ê·¸ëííì, ë°±ì¤
- ë°ê°ìµëë¤. ê¸ì 구ì±ê³¼ íë¦ì´ ë§¤ì° ìì°ì¤ë¬ì ìµëë¤.â¯
- ë¤ë ë¤ ê°ëë¤~ ì½ë ë´ë´ 몰ì íì´ì. ììì ìë¯¸ë¡ â¯
- ë°ë»í ì´ì¼ê¸° ëë¶ì íë£¨ê° ë ì¦ê±°ìì¡ì´ì. ê°ì¬í©ëâ¯
- ê¸ì´ ì°¸ ê¹ì´ê° ìë¤ì. ê°ì ê³¼ ë ¼ë¦¬ê° ì ì¡°í를 ì´ë¤â¯
- Total
- 1,011
- Today
- 0
- Yesterday
- 0
- ì´íí°ë¸ìë°
- ìì´í 60
- EffectiveJava
- Container
- ìí
- Retrofit2
- IMAGE
- ìì´í 59
- springboot
- bruteforce
- dfs
- Java
- ìê³ ë¦¬ì¦
- ìì´í 61
- docker-compose
- DevOps
- ìì´
- docker
- ì´ìì²´ì
- dp
- ì¡°í©
- OS
- ë°±ì¤
- ìì íì
- BFS
- cicd
- subset
- BOJ
- ê·¸ëííì
- í í°ê¸°ë°ì¸ì¦
