https://school.programmers.co.kr/learn/courses/30/lessons/84512
๋ฌธ์
- ์ฌ์ ์ ์ํ๋ฒณ ๋ชจ์ 'A', 'E', 'I', 'O', 'U'๋ง์ ์ฌ์ฉํ์ฌ ๋ง๋ค ์ ์๋, ๊ธธ์ด 5 ์ดํ์ ๋ชจ๋ ๋จ์ด๊ฐ ์๋ก
- ์ฌ์ ์์ ์ฒซ ๋ฒ์งธ ๋จ์ด๋ "A"์ด๊ณ , ๊ทธ๋ค์์ "AA"์ด๋ฉฐ, ๋ง์ง๋ง ๋จ์ด๋ "UUUUU”
- ๋จ์ด ํ๋ word๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ด ๋จ์ด๊ฐ ์ฌ์ ์์ ๋ช ๋ฒ์งธ ๋จ์ด์ธ์ง return
์ ์ถ๋ ฅ ์
- word : "AAAAE"
- result : 6
ํ์ด
- ์ฃผ์ด์ง ๋ชจ์์ ์ฌ๋ฌ ๊ฐ ์ ํํด์ ๋ฐฐ์นํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ค๋ณต ์์ด์ ์ด๋ค.
- 5Π1, 5Π2, 5Π3, 5Π4, 5Π5์ ๊ฐ๊ฐ ๊ตฌํ๋ค.
- N์ด 5๋ก ์์์ ์์ด์ ์จ๋ ์๊ฐ ์ด๊ณผ๊ฐ ๋์ง ์๋๋ค.
- ์ค๋ณต ์์ด์ ๊ฒฐ๊ณผ๋ฅผ ArrayList์ ๋ด๋๋ค.
- ์ค๋ณต๋๋ ๊ฒฐ๊ณผ ์์ผ๋ฏ๋ก HashSet์ ๊ตณ์ด ์ธ ํ์ ์๋ค.
- ArrayList์ ๋ด๊ธด ๋ฌธ์์ด๋ค์ ์ฌ์ ์์ผ๋ก ์ ๋ ฌํ๋ค(์ค๋ฆ์ฐจ์ ์ ๋ ฌ)
- ๋ฆฌ์คํธ๋ฅผ ์ํํ๋ฉฐ word๊ฐ ์ฌ์ ์์ ๋ช ๋ฒ์งธ ๋จ์ด์ธ์ง ์นด์ดํ ํ๋ค.
์ฝ๋
import java.util.*;
class Solution {
static String[] vowels = {"A", "E", "I", "O", "U"};
static String[] result;
static List<String> list;
public int solution(String word) {
list = new ArrayList<>();
for(int i = 1; i <= 5; i++) {
result = new String[i];
puermutation(0, i, word);
}
Collections.sort(list); //์ ๋ ฌ
//์ด ๋จ์ด๊ฐ ์ฌ์ ์์ ๋ช ๋ฒ์งธ ๋จ์ด์ธ์ง ์นด์ดํ
int answer = 1;
for(String str : list) {
if(str.equals(word)) {
break;
}
answer++;
}
return answer;
}
public void puermutation(int depth, int num, String word) {
if(depth == num) {
//์์ฑ๋ ๋จ์ด ์ ์ฅ
String voca = "";
for(String str : result) {
voca += str;
}
list.add(voca);
return;
}
for(int i = 0; i < 5; i++) {
result[depth] = vowels[i];
puermutation(depth + 1, num, word);
}
}
}
๊ฒฐ๊ณผ
๋ฐฐ์ด์
'Algorithm > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค - ๋ฆฌ์ฝ์ณ ๋ก๋ด (0) | 2023.07.26 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค - ๊ณผ์ ์งํํ๊ธฐ (0) | 2023.07.26 |
ํ๋ก๊ทธ๋๋จธ์ค - ์๊ฒฉ ์์คํ (0) | 2023.07.17 |
ํ๋ก๊ทธ๋๋จธ์ค - ์ฃผ์ฐจ ์๊ธ ๊ณ์ฐ (0) | 2023.04.30 |
ํ๋ก๊ทธ๋๋จธ์ค - ๊ดํธ ํ์ ํ๊ธฐ (0) | 2022.06.22 |