https://school.programmers.co.kr/learn/courses/30/lessons/84512
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ฌธ์
- ์ฌ์ ์ ์ํ๋ฒณ ๋ชจ์ '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 |
https://school.programmers.co.kr/learn/courses/30/lessons/84512
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋ฌธ์
- ์ฌ์ ์ ์ํ๋ฒณ ๋ชจ์ '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 |