01-09 04:37
Recent Posts
Recent Comments
Tags
- SQL
- ICT
- μ¨μΌλν
- Spring
- APIλ§μΌνλ μ΄μ€
- λ°μ΄ν°λ² μ΄μ€
- TSQL
- νλ‘λ³΄λ Έ
- Java
- μ€ν½λ ν
- RaspberryPi
- DB
- Naver Cloud
- linux
- JOBνκ³
- νμ΄μ¬
- mysql
- μλ°
- μ΄λΈμ
- μ‘νκ³
- μ€ν½μ€λΉ
- νμ΄μ
- appetizer
- ict곡λͺ¨μ
- API MarketPlace κΈλ‘λ² μν¬ν°μ¦
- python
- νμ΄μ곡λͺ¨μ
- DATABASE
- μλμ΄λ Έ
- ICTλ©ν λ§
- Today
- Total
miinsun
[BAEKJOON] λ°±μ€ BFS 2468 :: μμ μμ λ³Έλ¬Έ
π¬ λ¬Έμ μ€λͺ
μ¬λλ°©μ¬μ²μμλ λ§μ λΉκ° λ΄λ¦¬λ μ₯λ§μ² μ λλΉν΄μ λ€μκ³Ό κ°μ μΌμ κ³ννκ³ μλ€. λ¨Όμ μ΄λ€ μ§μμ λμ΄ μ 보λ₯Ό νμ νλ€. κ·Έ λ€μμ κ·Έ μ§μμ λ§μ λΉκ° λ΄λ Έμ λ λ¬Όμ μ κΈ°μ§ μλ μμ ν μμμ΄ μ΅λλ‘ λͺ κ°κ° λ§λ€μ΄ μ§λ μ§λ₯Ό μ‘°μ¬νλ €κ³ νλ€.
μ΄λ, λ¬Έμ λ₯Ό κ°λ¨νκ² νκΈ° μνμ¬, μ₯λ§μ² μ λ΄λ¦¬λ λΉμ μμ λ°λΌ μΌμ ν λμ΄ μ΄νμ λͺ¨λ μ§μ μ λ¬Όμ μ κΈ΄λ€κ³ κ°μ νλ€.
μ΄λ€ μ§μμ λμ΄ μ 보λ νκ³Ό μ΄μ ν¬κΈ°κ° κ°κ° NμΈ 2μ°¨μ λ°°μ΄ ννλ‘ μ£Όμ΄μ§λ©° λ°°μ΄μ κ° μμλ ν΄λΉ μ§μ μ λμ΄λ₯Ό νμνλ μμ°μμ΄λ€.
μλ₯Ό λ€μ΄, λ€μμ N=5μΈ μ§μμ λμ΄ μ 보μ΄λ€.
μ΄μ μμ κ°μ μ§μμ λ§μ λΉκ° λ΄λ €μ λμ΄κ° 4 μ΄νμΈ λͺ¨λ μ§μ μ΄ λ¬Όμ μ κ²Όλ€κ³ νμ.
μ΄ κ²½μ°μ λ¬Όμ μ κΈ°λ μ§μ μ νμμΌλ‘ νμνλ©΄ λ€μκ³Ό κ°λ€.
λ¬Όμ μ κΈ°μ§ μλ μμ ν μμμ΄λΌ ν¨μ λ¬Όμ μ κΈ°μ§ μλ μ§μ λ€μ΄ μ, μλ, μ€λ₯Έμͺ½ νΉμ μΌμͺ½μΌλ‘ μΈμ ν΄ μμΌλ©° κ·Έ ν¬κΈ°κ° μ΅λμΈ μμμ λ§νλ€. μμ κ²½μ°μμ λ¬Όμ μ κΈ°μ§ μλ μμ ν μμμ 5κ°κ° λλ€(κΌμ§μ μΌλ‘λ§ λΆμ΄ μλ λ μ§μ μ μΈμ νμ§ μλλ€κ³ μ·¨κΈνλ€).
λν μμ κ°μ μ§μμμ λμ΄κ° 6μ΄νμΈ μ§μ μ λͺ¨λ μ κΈ°κ² λ§λλ λ§μ λΉκ° λ΄λ¦¬λ©΄ λ¬Όμ μ κΈ°μ§ μλ μμ ν μμμ μλ κ·Έλ¦Όμμμ κ°μ΄ λ€ κ°κ° λ¨μ νμΈν μ μλ€.
μ΄μ κ°μ΄ μ₯λ§μ² μ λ΄λ¦¬λ λΉμ μμ λ°λΌμ λ¬Όμ μ κΈ°μ§ μλ μμ ν μμμ κ°μλ λ€λ₯΄κ² λλ€. μμ μμ κ°μ μ§μμμ λ΄λ¦¬λ λΉμ μμ λ°λ₯Έ λͺ¨λ κ²½μ°λ₯Ό λ€ μ‘°μ¬ν΄ 보면 λ¬Όμ μ κΈ°μ§ μλ μμ ν μμμ κ°μ μ€μμ μ΅λμΈ κ²½μ°λ 5μμ μ μ μλ€.
μ΄λ€ μ§μμ λμ΄ μ λ³΄κ° μ£Όμ΄μ‘μ λ, μ₯λ§μ² μ λ¬Όμ μ κΈ°μ§ μλ μμ ν μμμ μ΅λ κ°μλ₯Ό κ³μ°νλ νλ‘κ·Έλ¨μ μμ±νμμ€.
π¨ μ μΆλ ₯ μ
μ λ ₯
- 첫째 μ€μλ μ΄λ€ μ§μμ λνλ΄λ 2μ°¨μ λ°°μ΄μ νκ³Ό μ΄μ κ°μλ₯Ό λνλ΄λ μ Nμ΄ μ λ ₯λλ€.
- Nμ 2 μ΄μ 100 μ΄νμ μ μμ΄λ€.
- λμ§Έ μ€λΆν° Nκ°μ κ° μ€μλ 2μ°¨μ λ°°μ΄μ 첫 λ²μ§Έ νλΆν° Nλ²μ§Έ νκΉμ§ μμλλ‘ ν νμ© λμ΄ μ λ³΄κ° μ λ ₯λλ€.
- κ° μ€μλ κ° νμ 첫 λ²μ§Έ μ΄λΆν° Nλ²μ§Έ μ΄κΉμ§ Nκ°μ λμ΄ μ 보λ₯Ό λνλ΄λ μμ°μκ° λΉ μΉΈμ μ¬μ΄μ λκ³ μ λ ₯λλ€.
- λμ΄λ 1μ΄μ 100 μ΄νμ μ μμ΄λ€.
μΆλ ₯
- 첫째 μ€μ μ₯λ§μ² μ λ¬Όμ μ κΈ°μ§ μλ μμ ν μμμ μ΅λ κ°μλ₯Ό μΆλ ₯νλ€.
μμ μ λ ₯ 1)
5
6 8 2 6 2
3 2 3 4 6
6 7 3 3 2
7 2 5 3 6
8 9 5 2 7
μμ μΆλ ₯ 1)
5
μμ μ λ ₯ 2)
7
9 9 9 9 9 9 9
9 2 1 2 1 2 9
9 1 8 7 8 1 9
9 2 7 9 7 2 9
9 1 8 7 8 1 9
9 2 1 2 1 2 9
9 9 9 9 9 9 9
μμ μΆλ ₯ 2)
6
β
β
π» Main.java
- BFSμ DFSλ‘ ν μ μλ λ¬Έμ ! λλ μ’λ μλκ° λΉ λ₯Έ BFSλ‘ λ¬Έμ λ₯Ό νλλ‘ νλ€.
- μ§μμ μ’νλ₯Ό μ μ₯ν΄μ€ Point κ°μ²΄λ₯Ό λ§λ λ€
- μ§μ μ 보λ boardμ μ μ₯νκ³ , μμ μ§λμ μ 보λ safeμ μ μ₯ν΄μ€¬λ€.
- μ΄λ safeκ° μ€λ³΅ λ°©λ¬Έμ λ§λλ‘ λ°©λ¬Έ κΈ°λ‘μ νμνλ μν μ νλ€.
- 0λΆν° μ§μμ μ΅λ λμ΄κΉμ§ λΉκ° μμμ¬ μ μλλ‘ μμνκ³ (λΉκ° μμ¬μλ μκΈ° λλ¬Έμ 0ν¬ν¨, 0~maxHeight)
- μ°¨μ€λ₯΄λ λμ΄λ³΄λ€ λμ μ§μμ μ§λκ°λ λμ΄ μ°μ νμμ μ§νν΄μ£Όμ
/* λ°±μ€ - 2468 :: μμ μμ */
import java.util.*;
import java.io.*;
class Point {
public int x, y;
Point (int x, int y){
this.x = x;
this.y = y;
}
}
public class Main {
// μνμ’μ°λ₯Ό μ§λκ°λλ‘ dx,dy μΈν
static int[] dx = {-1, 0, 1, 0};
static int[] dy = {0, 1, 0, -1};
static int[][] board, safe;
static Queue<Point> q = new LinkedList<>();
public static void bfs(int height, int cnt) {
while(!q.isEmpty()) {
Point tmp = q.poll();
for(int i = 0; i < 4; i++) {
int nx = tmp.x + dx[i];
int ny = tmp.y + dy[i];
if(nx >= 0 && nx < board.length && ny >= 0 && ny < board.length // μμκ²μ¬
&& board[nx][ny] > height && safe[nx][ny] == 0) { // λ¬Όμ΄ μ°¨μ€λ₯΄λ λμ΄λ³΄λ€ λκ³ , λ°©λ¬Ένμ μλ μ§μλ§ λ°©λ¬Έ
q.offer(new Point(nx, ny));
safe[nx][ny] = cnt;
}
}
}
}
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
board = new int[n][n];
int maxHeight = 0;
for(int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
for(int j = 0; j < n; j++) {
board[i][j] = Integer.parseInt(st.nextToken());
maxHeight = Math.max(maxHeight, board[i][j]);
}
}
int answer = 0;
for(int i = 0; i < maxHeight; i++) { // λ¬Όμ΄ μ°¨μ€λ₯΄λ λμ΄
safe = new int[n][n];
int cnt = 1;
for(int j = 0; j < n; j++) { // xμ’ν
for(int k = 0; k < n; k++) { // yμ’ν
if(board[j][k] > i && safe[j][k] == 0) { // λ°©λ¬Ένμ μ΄ μκ³ , λ¬Όμ΄ μ°¨μ€λ₯΄λ λμ΄λ³΄λ€ λμ μ§μ λ§ λ°©λ¬Έ
q.offer(new Point(j, k));
bfs(i, cnt);
answer = Math.max(answer, cnt);
cnt++;
}
}
}
}
System.out.println(answer);
br.close();
}
}
'Algorithm > Baekjoon' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BAEKJOON] λ°±μ€ κ·Έλ¦¬λ 10709 :: κΈ°μμΊμ€ν° (0) | 2022.06.13 |
---|---|
[BAEKJOON] λ°±μ€ κ·Έλ¦¬λ 2828 :: μ¬κ³Ό λ΄κΈ° κ²μ (0) | 2022.06.13 |
[BAEKJOON] λ°±μ€ κ΅¬ν 9996 :: νκ΅μ΄ κ·Έλ¦¬μΈ λ μλ²μ μ μνμ§ (0) | 2022.06.10 |
[BAEKJOON] λ°±μ€ κ΅¬ν 1316 :: κ·Έλ£Ή λ¨μ΄ 체컀 (0) | 2022.06.10 |
[BAEKJOON] λ°±μ€ νλ‘μ΄λ μμ 11404 :: νλ‘μ΄λ (0) | 2022.06.09 |
Comments