https://school.programmers.co.kr/learn/courses/30/lessons/84512
1. ๋ฌธ์
A, E, I, O, U๋ก ๋ง๋ค ์ ์๋ ๊ธธ์ด๊ฐ 5 ์ดํ์ธ ๋จ์ด๊ฐ ์๋ก๋ ์ฌ์ ์ด ์๋ค.
ํน์ ๋จ์ด๊ฐ ์ฃผ์ด์ก์ ๋, ์ฌ์ ์์ ๋ช ๋ฒ์งธ ๋จ์ด์ธ์ง ๋ฐํํ๋ค.
2. ํ์ด
์ฌ๊ท๋ฅผ ์ฌ์ฉํ์๋ค.
map์ ์ฌ์ฉํ์ฌ ๋จ์ด, index๋ฅผ ์ ์ฅํ๋ฉด์ ์ฌ์ ์ญํ ์ ํ์๋ค.
1. ์ด๊ธฐ๊ฐ์ "", depth 0์ผ๋ก ์ถ๋ฐํ๋ค.
2. ์ฌ๊ท๋ฅผ ๋ ๋๋ง๋ค map์ ๋จ์ด์ ์์๋ฅผ ๋ฃ์ด์ค๋ค.
3. ๊ทธ๋ฆฌ๊ณ depth๊ฐ 5๊ฐ ๋๋ฉด(๋จ์ด ๊ธธ์ด๊ฐ 5) returnํด์ฃผ์ด ๋ค์ ์ด์ ์ํ๋ก ๋์๊ฐ๋ค.
4. ์ด์ ์ํ์์ ๋ค์ ์ํ๋ฒณ์ ๋ถ์ฌ์ฃผ๋ฉฐ ๋ฐ๋ณตํ๋ค.
์ฌ๊ท๊ฐ ๋๋ ํ, map์์ ์ฃผ์ด์ง ๋จ์ด๋ฅผ getํ์ ๋์ value๊ฐ์ด ์์์ด๋ฏ๋ก ์ด๊ฒ์ ๋ฐํํ๋ฉด ๋์ด๋ค.
3. ์ฝ๋
import java.io.*;
import java.util.*;
class Solution {
static String[] arr = { "A", "E", "I", "O", "U"};
static int index = 0;
static Map<String, Integer> map = new HashMap<> ();
public int solution(String word) {
int answer = 0;
recursion("", 0);
answer = map.get(word);
return answer;
}
static void recursion(String s, int depth) {
map.put(s, index++);
if (depth == 5) return;
for (int i=0; i<5; i++) {
recursion(s+arr[i], depth+1);
}
}
}
4. ์ฌ๋ด
์ฒ์์ ๋ถ๋ถ์งํฉ, ์์ด๋ก ์ ๊ทผํ์ด์ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ ธ๋ค.
์ญ์ ์ต๋ํ ๋ง์ด ํ์ด๋ด์ผ ์ฅ๋ก์ธ๋ฏํ๋ค.
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] ์์ - Java (0) | 2023.10.11 |
---|---|
[Programmers] ์ ํ๋ฒํธ ๋ชฉ๋ก - Java (0) | 2023.10.04 |
[Programmers] ์ ๋ ฅ๋ง์ ๋๋ก ๋๋๊ธฐ - Java (0) | 2023.09.20 |
[Programmers] ํผ๋ก๋ - Java (0) | 2023.09.20 |
[Programmers] ์์์ฐพ๊ธฐ (level 2) - Java (1) | 2023.09.18 |