https://school.programmers.co.kr/learn/courses/30/lessons/84512
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
프로그래머스 lv2 완전탐색 문제이고, 특정 문자열이 주어졌을 때 제시된 조건을 가진 사전 순으로 몇번째로 출력되는지를 응답하는 문제입니다. 제시된 조건을 아래와 같이 살펴봅시다.
제시된 조건
- 문자를 "A", "E", "I", "O", "U" 만 사용함.
- 문자열 최소 크기는 1, 최대 크기는 5
완전 탐색은 대체로 dfs 로 해결하는 편이나, 시간 초과에 대한 고민은 항상 해야된다.
다만 이 문제는 시간 초과에 대한 고민은 크게 하지 않아도 되는 문제라고 생각한다. (max 로 탐색하는 경우에도 10000 번 이내이기 때문이다)
예제 코드는 다음과 같습니다.
import java.util.*;
class Solution {
public static List<String> wordList = new ArrayList<>();
public static String[] alpha = {"A", "E", "I", "O", "U"};
public static int index = 0;
public static int solution(String word) {
int answer = 0;
dfs(word,"",0);
answer = index;
return answer;
}
public static void dfs(String target, String word, int depth) {
if (depth > 5) return;
if (target.equals(word)) {
index = wordList.size();
}
wordList.add(word);
for (int i = 0; i < 5; i++) {
dfs(target,word + alpha[i], depth+1);
}
}
}
'코딩테스트' 카테고리의 다른 글
| [프로그래머스] 게임 맵 최단거리 (0) | 2022.08.10 |
|---|---|
| [프로그래머스] 올바른 괄호 (0) | 2022.08.09 |
| [프로그래머스] 전력망을 둘로 나누기 (0) | 2022.07.31 |
| [프로그래머스] 파괴되지 않은 건물 (0) | 2022.07.27 |
| [프로그래머스] 빛의 경로 사이클 (0) | 2022.07.25 |