[programmers] λͺ¨μμ¬μ - Java
μνλ²³ λͺ¨μ 'A', 'E', 'I', 'O', 'U'λ‘ λ§λ€ μ μλ κΈΈμ΄ 5 μ΄νμ λ¨μ΄κ° μ¬μ μ μλ‘λμ΄ μμ λ, μ£Όμ΄μ§ λ¨μ΄κ° μ¬μ μμ λͺ λ²μ§Έ λ¨μ΄μΈμ§ μ°Ύλ λ¬Έμ μ
λλ€. DFS λ°©μμΌλ‘ μ¬μ μ μμ±νκ³ , ν΄λΉ μ¬μ μμ λ¨μ΄κ° μΆννλ μμλ₯Ό μ°Ύμ 리ν΄νλ λ°©λ²μ μ¬μ©νμ΅λλ€. μ΄ λ°©λ²μ μ¬μ μ μμ±νμ§ μκ³ λ κ°μ μΆλ ₯ν μ μλ μκ³ λ¦¬μ¦μ μμ±νλ λ° λμ νλ κ³κΈ°κ° λμμ΅λλ€.
Apr 18, 2024
λͺ¨μμ¬μ
λ¬Έμ μ€λͺ
μ¬μ μ μνλ²³ λͺ¨μ 'A', 'E', 'I', 'O', 'U'λ§μ μ¬μ©νμ¬ λ§λ€ μ μλ, κΈΈμ΄ 5 μ΄νμ λͺ¨λ λ¨μ΄κ° μλ‘λμ΄ μμ΅λλ€. μ¬μ μμ 첫 λ²μ§Έ λ¨μ΄λ "A"μ΄κ³ , κ·Έλ€μμ "AA"μ΄λ©°, λ§μ§λ§ λ¨μ΄λ "UUUUU"μ
λλ€.
λ¨μ΄ νλ wordκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, μ΄ λ¨μ΄κ° μ¬μ μμ λͺ λ²μ§Έ λ¨μ΄μΈμ§ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ νμ¬ν
- wordμ κΈΈμ΄λ 1 μ΄μ 5 μ΄νμ λλ€.
- wordλ μνλ²³ λλ¬Έμ 'A', 'E', 'I', 'O', 'U'λ‘λ§ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
μ μΆλ ₯ μ
word | result |
"AAAAE" | 6 |
"AAAE" | 10 |
"I" | 1563 |
"EIO" | 1189 |
μ μΆλ ₯ μ μ€λͺ
μ
μΆλ ₯ μ #1
μ¬μ μμ 첫 λ²μ§Έ λ¨μ΄λ "A"μ΄κ³ , κ·Έλ€μμ "AA", "AAA", "AAAA", "AAAAA", "AAAAE", ... μ κ°μ΅λλ€. "AAAAE"λ μ¬μ μμ 6λ²μ§Έ λ¨μ΄μ
λλ€.
μ
μΆλ ₯ μ #2
"AAAE"λ "A", "AA", "AAA", "AAAA", "AAAAA", "AAAAE", "AAAAI", "AAAAO", "AAAAU"μ λ€μμΈ 10λ²μ§Έ λ¨μ΄μ
λλ€.
μ
μΆλ ₯ μ #3
"I"λ 1563λ²μ§Έ λ¨μ΄μ
λλ€.
μ
μΆλ ₯ μ #4
"EIO"λ 1189λ²μ§Έ λ¨μ΄μ
λλ€.
solution.java
import java.util.*;
class Solution {
List<String> list;
String[] arr = {"A", "E", "I", "O", "U"};
public int solution(String word) {
int answer = 0;
list = new ArrayList<>();
// μ¬μ μμ±
for(int i = 0 ; i < 5; ++i)
makeWord(arr[i], 1);
// μ¬μ μμ λ¨μ΄ νμ
for(int i = 0; i < list.size(); i++){
if(list.get(i).equals(word))
return i + 1;
}
return answer;
}
// dfsλ₯Ό μ΄μ©ν μ¬μ μμ±
public void makeWord(String base, int depth){
list.add(base);
if(depth == 5){
return;
}
for(int i = 0 ; i < 5; ++i)
makeWord(base + arr[i], depth + 1);
}
}
ν΅μ¬ ν€μλ
- DFS λ°©μμΌλ‘ μ¬μ μ μμ±ν ν, ν΄λΉ μ¬μ μμ λ¨μ΄κ° μΆννλ μμλ₯Ό μ°Ύμ 리ν΄νλ€.
- μ¬μ μμ ν΄λΉ λ¨μ΄μ μμλ₯Ό μ°ΎκΈ° μν΄μλ μμλ₯Ό 보μ₯νλ μλ£κ΅¬μ‘°λ₯Ό μ¬μ©ν΄μΌ νλ―λ‘,
Listλ₯Ό μ¬μ©νλ€.
κ²°λ‘ !
μ²μ ν΄λΉ λ¬Έμ μ μ κ·Όν λ μ¬μ μ μμ±νμ§ μκ³ μ
λ ₯ κ°μ μ΄μ©ν΄ λ°λ‘ κ°μ μΆλ ₯νλ € νμ§λ§ μ½λκ° μ μμ±λμ§ μμλ€.
μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ 1λΆν° 5κΉμ§μ κΈΈμ΄λ₯Ό κ°μ§ λͺ¨λ λ¨μ΄λ₯Ό ν¬ν¨νλ μ¬μ μ 미리 λ§λ€κ³ , ν΄λΉ μ¬μ μ νμνλ ννλ‘ μ½λλ₯Ό μμ νλ€.
μΆν μ¬μ μ μμ±νμ§ μκ³ λ κ°μ μΆλ ₯ν μ μλ μκ³ λ¦¬μ¦μ μμ±ν΄λ³΄κ³ μΆμλ€.
Share article