https://school.programmers.co.kr/learn/courses/30/lessons/84512
이번 문제는 완전 탐색 문제였습니다.
글쓴이는 dfs를 사용하여 풀이했습니다.
(프로그래머스 다른 사람 풀이보면 다른 좋은 방법도 많으니까 참고하시면 좋을 것 같아요!)
📝 문제 풀이
1. ""을 시작으로 dfs 수행
2. "AEIOU" 문자열을 순회하면서 dfs 수행
3. dfs 수행할 때마다 cnt++ (사전에서의 단어 위치) ⭐️
4. 현재 단어가 사전에서 몇 번째인지 탐색하려는 단어와 같으면 answer = cnt
👩🏻💻 C++ 코드
#include <string>
#include <vector>
using namespace std;
int cnt = -1;
int answer = 0;
string target = "";
string aeiou = "AEIOU";
void dfs(string word) {
cnt++;
if (word == target) {
answer = cnt;
return;
}
if (word.length() >= 5) return;
for (int i=0; i<5; i++) {
dfs(word + aeiou[i]);
}
}
int solution(string word) {
target = word;
dfs("");
return answer;
}
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 전력망을 둘로 나누기 C++ (Lv.2) (0) | 2023.04.12 |
---|---|
[프로그래머스] 피로도 C++ (1) | 2023.04.12 |
[프로그래머스] 여행 경로 C++ (1) | 2023.04.11 |
[프로그래머스] 소수 찾기 C++ (0) | 2023.04.08 |
[프로그래머스] 단어 변환 C++ (0) | 2023.04.08 |