모음사전

원래벌레·2022년 11월 26일
0

문제


접근법

이 문제의 경우 dfs를 통하여 모든 경우의 수를 사전에 추가를 한다고 생각을 했다.
그리고 이렇게 모든 값이 추가된 사전을 for문을 통해 돌면서 result에 해당하는 값과 같은 값을 같는 경우의 인덱스+1 이 답이 될 것이라고 생각을하고 풀었다.


풀이

#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

char c[5] = {'A','E','I','O','U'};
string result[8000];
int cnt=0;

void dfs(string s,char plus)
{
    if(s.size() == 5) return;
    s += plus;
    result[cnt] = s;
    cnt++;
    for(int i=0;i<5;i++)
    {
        dfs(s,c[i]);
    }
}

int solution(string word) {
    int answer = 0;
    for(int i=0;i<5;i++)
    {
        dfs("",c[i]);    
    }
    
    for(int i=0;i<8000;i++)
    {
        cout<<result[i] <<" ";
        if(result[i]==word)
        {
            answer = i+1;
            break;
        }
    }
    return answer;
}

/*

AEIOU만을 사용하여 만들 수 있는 길이 5이하의 모든 단어가 기록되어 있는 사전
첫번째는 A 마지막은 UUUUU

전부다 만들면 될듯 ?

A일떄, E일때, I일때, O일때, U일때

*/

먼저 AEIOU의 각각을 CHAR형 배열에 추가를 하였다.

그리고 AEIOU에 대해서 dfs를 구현하여 string 배열에 값을 추가하도록 해주었다.


profile
학습한 내용을 담은 블로그 입니다.

0개의 댓글