Level 2. 모음사전
#include <iostream>
using namespace std;
bool rDFS(string s, string& word, int& answer)
{
const static string alphabets[] = {"A", "E", "I", "O", "U"};
++answer;
if (s == word)
return true;
else if (s.length() == 5)
return false;
for (const string& alpha : alphabets)
if (rDFS(s + alpha, word, answer))
return true;
return false;
}
int solution(string word)
{
int answer = 0;
const string alphabets[] = {"A", "E", "I", "O", "U"};
for (const string& alpha : alphabets)
if (rDFS(alpha, word, answer))
return answer;
}
뒤에서부터 개수를 직접 세어 더하는 방법인 것 같다.
#include <iostream>
using namespace std;
int solution(string word)
{
string s("AEIOU");
int n = word.size(), answer(n);
for (int i = 0, b = 1; i < n; ++i, b *= 5)
answer += s.rfind(word[i]) * 781 / b;
return answer;
}
'자료구조 & 알고리즘 > 프로그래머스' 카테고리의 다른 글
Level 2. 줄 서는 방법 (0) | 2023.06.13 |
---|---|
Level 2. 하노이의 탑 (0) | 2023.06.12 |
Level 2. 멀쩡한 사각형 (0) | 2023.06.10 |
Level 2. 행렬 테두리 회전하기 (0) | 2023.06.09 |
Level 0. 수열과 구간 쿼리 4 (1) | 2023.06.08 |