μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- νμ΄μ½ μΆμ²μΈμ½λ
- νμ λΆκΈ°
- php νλ‘κ·Έλλ° μ λ¬Έ λ¬Έμ νμ΄
- λ°±μ€
- μλ°
- νμ΄μ½ μΉκ΅¬μ½λ
- νμ΄μ½ μ΄λμ½λ
- νλ¬ν°
- Flutter
- programmers
- php νλ‘κ·Έλλ°
- νλ¬ν° κ°λ°νκ²½ μ€μ
- php νλ‘κ·Έλλ° μ λ¬Έ 3ν
- μ΅λ¨ κ²½λ‘
- php νλ‘κ·Έλλ° μ λ¬Έ
- php νλ‘κ·Έλλ° μ λ¬Έ μμ
- CμΈμ΄
- Java
- νμ΄μ½ μΆμ²μΈ
- JAVA SPRING
- php νλ‘κ·Έλλ° μ λ¬Έ μ°μ΅λ¬Έμ
- C
- νμ΄μ¬
- μλ° μ€νλ§
- μ€νλ§
- λ°°μ΄
- php νλ‘κ·Έλλ° μ λ¬Έ μ루μ
- spring
- php
- SWEA
Archives
- Today
- Total
03-11 02:22
ImJay
[BOJ/Java] 1039. κ΅ν λ³Έλ¬Έ
λ°μν
π [BOJ/Java] 1039. κ΅ν
π‘ λ¬Έμ ν΄μ
μμ°μ N(μ΅λ 1,000,000)κ³Ό κ΅ν νμ K(μ΅λ 10)κ° μ£Όμ΄μ§λ€.
μ«μ Nμ κ° μλ¦Ώμλ₯Ό μ νν Kλ² κ΅ννμ¬ λ§λ€ μ μλ κ°μ₯ ν° μλ₯Ό ꡬν΄μΌ νλ€.
λ¨, 0μΌλ‘ μμνλ μ«μλ λΆκ°λ₯νλ―λ‘, κ΅ν κ²°κ³Όκ° 0μΌλ‘ μμνλ©΄ ν΄λΉ κ²½μ°λ μ μΈν΄μΌ νλ€.
μλ₯Ό λ€μ΄,
β
N = 132, K = 1μΌ λ → (312, 231) μ€ 312κ° μ΅λ
β
N = 100, K = 1μΌ λ → κ°λ₯ν κ΅νμ΄ μμΌλ―λ‘ -1
λ¬Έμ μ ν΅μ¬μ BFS(λλΉ μ°μ νμ)λ₯Ό μ¬μ©νμ¬ κ°λ₯ν λͺ¨λ μ«μ μ‘°ν©μ νμνλ κ²μ΄λ€.
π νμ΄ κ³Όμ
1οΈβ£ BFSλ₯Ό νμ©ν μμ νμ
- νμ¬ μ«μ μνλ₯Ό Queueμ μ μ₯νκ³ , Setμ νμ©ν΄ λ°©λ¬Έ μ¬λΆλ₯Ό 체ν¬νλ€.
- Kλ² λμ λͺ¨λ κ°λ₯ν μ«μ μ‘°ν©μ μμ±νμ¬ νμνλ€.
- 맀 λ°λ³΅λ§λ€ κ°λ₯ν λͺ¨λ μ리 κ΅νμ μννλ€.
2οΈβ£ μ«μ κ΅ν λ‘μ§
- λ¬Έμμ΄λ‘ λ³ννμ¬ λ μ리 μ«μλ₯Ό κ΅ννλ€.
- κ΅ν ν 0μΌλ‘ μμνλ κ²½μ° μ μΈνλ€.
3οΈβ£ μ΅λ μ«μ μ°ΎκΈ°
- Kλ²μ κ΅νμ΄ λλ ν, λ¨μ μλ μ«μλ€ μ€ κ°μ₯ ν° κ°μ μΆλ ₯νλ€.
- λ§μ½ μ ν¨ν μ«μκ° μλ€λ©΄ -1 μΆλ ₯
π» μ½λ (Java)
import java.util.*;
public class Main {
static int N, K;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
K = sc.nextInt();
System.out.println(bfs());
}
private static int bfs() {
Queue<String> queue = new LinkedList<>();
queue.offer(String.valueOf(N));
for (int k = 0; k < K; k++) {
Set<String> visited = new HashSet<>();
int size = queue.size();
for (int i = 0; i < size; i++) {
String cur = queue.poll();
for (int x = 0; x < cur.length(); x++) {
for (int y = x + 1; y < cur.length(); y++) {
char[] arr = cur.toCharArray();
// μ리 λ°κΎΈκΈ°
char temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
// κ΅ν ν μ«μκ° 0μΌλ‘ μμνλ©΄ μ μΈ
if (arr[0] == '0') continue;
String next = new String(arr);
// μ€λ³΅λ κ²½μ° λ°©λ¬Έ X
if (!visited.contains(next)) {
visited.add(next);
queue.offer(next);
}
}
}
}
// κ΅νμ νμμλ λΆκ΅¬νκ³ λ μ΄μ νμν μ μμΌλ©΄ -1 λ°ν
if (queue.isEmpty()) return -1;
}
int maxVal = -1;
while (!queue.isEmpty()) {
maxVal = Math.max(maxVal, Integer.parseInt(queue.poll()));
}
return maxVal;
}
}
β± μκ° λ³΅μ‘λ λΆμ
- BFS νμμ μ¬μ©νλ©°, μ΅λ K=10λ² λ°λ³΅
- μ«μ κ΅ν μ, μ΅λ O(L^2) (Lμ μ«μμ μλ¦Ώμ, μ΅λ 6)
- μ΅μ μ κ²½μ° O(K × L^2) ≈ O(10 × 36) = O(360) → μΆ©λΆν ν΄κ²° κ°λ₯
π§ λλ μ
- λ¨μν λΈλ£¨νΈν¬μ€ λ°©μμΌλ‘λ ν΄κ²°μ΄ μ΄λ €μ΄ λ¬Έμ μλ€.
- BFSλ₯Ό νμ©νμ¬ κ΅ν κ³Όμ μ λ¨κ³λ³λ‘ μ§ννλ κ²μ΄ ν΅μ¬μ΄μλ€.
- μ«μλ₯Ό λ¬Έμμ΄λ‘ λ³ννμ¬ λ€λ£¨λ λ°©μμ΄ μμ£Ό μ¬μ©λλ―λ‘ μ΅μν΄μ ΈμΌκ² λ€.
- 0μΌλ‘ μμνλ μ«μλ₯Ό λ°°μ νλ 쑰건μ λμΉμ§ μλλ‘ μ£Όμν΄μΌκ² λ€.
λ°μν
'μκ³ λ¦¬μ¦ > BOJ - Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ/Java] 1981. λ°°μ΄μμ μ΄λ (1) | 2025.03.10 |
---|---|
[BOJ/Java] 9370. λ―ΈνμΈ λμ°©μ§ (0) | 2025.03.10 |
[BOJ/Java] 10942. ν°λ¦°λ둬? (0) | 2025.03.10 |
[BOJ/Java] 7579. μ± (0) | 2025.03.10 |
[BOJ/Java] 4991. λ‘λ΄ μ²μκΈ° (0) | 2025.03.10 |
Comments