반응형
🔺 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔺 코드
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
|
import java.util.*;
import java.io.*;
class Solution {
static String word;
static String[] vowels;
static List<String> list = new ArrayList<>();
public int solution(String word) {
this.word = word;
vowels = new String[]{"A", "E", "I", "O", "U"};
comb("", 0);
return list.indexOf(word);
}
private static void comb(String str, int depth) {
list.add(str);
if(depth == 5) {
return;
}
for(int i = 0 ; i < vowels.length ; i++) {
comb(str + vowels[i], depth + 1);
}
}
}
|
cs |
🧩 해결 아이디어
- 완전탐색 (브루트포스)
- 백트래킹 (조합)
🔺 다른 풀이들
- ??? 수학을 활용하셨다.....
https://bangu4.tistory.com/241
[위클리챌린지] 5주 - 모음사전 - Java코드
https://programmers.co.kr/learn/courses/30/lessons/84512#qna 코딩테스트 연습 - 5주차 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에
bangu4.tistory.com
💬 느낀 점
백트래킹 언제 잘하나.....ㅎ
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V | 10.17 |
(+ 2회독 10.17)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import java.util.*;
class Solution {
static String[] vowels = {"A", "E", "I", "O", "U"};
static List<String> list = new ArrayList<>(); // 알파벳 모음 집합
public int solution(String word) {
comb("", 0);
return list.indexOf(word);
}
// 조합 메소드 (백트래킹)
private static void comb(String str, int depth) {
list.add(str);
if(depth == 5) return;
for(int i = 0 ; i < vowels.length ; i++) {
comb(str + vowels[i], depth + 1); // 재귀 호출
}
}
}
|
cs |
(참고)
✔ String 배열에 특정값 대입하며 선언하는 방법
[Java] 배열의 여러가지 선언 및 초기화 방법
배열이란 동일한 자료형으로 선언된 데이터 공간을 메모리 상에 연속적으로 나열하여 데이터 관리의 효율성을 높이는 것입니다. 변수는 한개의 데이터만 저장할 수 있습니다. 따라서 저장해야
coding-factory.tistory.com
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 2] 뒤에 있는 큰 수 찾기 (JAVA) (0) | 2023.09.24 |
---|---|
[프로그래머스/Lv.2] 할인 행사 (JAVA) (0) | 2023.09.22 |
[프로그래머스/Lv. 2] 이모티콘 할인행사 (JAVA) (0) | 2023.09.14 |
[프로그래머스/Lv. 2] 연속 부분 수열 합의 개수 (JAVA) (0) | 2023.09.14 |
[프로그래머스/Lv. 2] 게임 맵 최단거리 (JAVA) (0) | 2023.09.14 |