알고리즘/프로그래머스

[프로그래머스] 모음 사전 C++ (Lv.2)

lheunoia 2023. 4. 11. 00:48

 

 

 

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/84512

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

이번 문제는 완전 탐색 문제였습니다.

글쓴이는 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;
}

 

프로그래머스 - 결과 화면

 

 

 

 

반응형