반응형
https://programmers.co.kr/learn/courses/30/lessons/84512
기본 전수조사 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
모음목록 문자열 str, 모음으로 이뤄진 사전 내용을 저장할 map변수 comb을 선언해줍니다.
📔 풀이과정
dfs를 수행해 5개의 모음 중 i개로 만들 수 있는 문자열들을 모두 구해 comb에 저장해줍니다.
📔 정답출력
comb에 대해 for loop를 수행하며 원하는 단어가 나오면 answer를 반환해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
string str = "AEIOU";
map <string,int> comb;
void dfs(int depth, int want, string tmp){
if(depth == want){
comb[tmp] = 1;
return;
}
for(int i = 0; i < 5; i++){
dfs(depth + 1, want, tmp + str[i]);
}
}
int solution(string word) {
comb.clear();
int answer = 0;
for(int i = 1; i <= 5; i++) dfs(0,i,"");
for(auto c : comb){
answer++;
if(c.first == word) return answer;
}
return answer;
}
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Brute Force' 카테고리의 다른 글
(C++) - 백준(BOJ) 1535 : 안녕? (0) | 2022.06.30 |
---|---|
(C++) - 백준(BOJ) 1254 : 팰린드롬 만들기 (0) | 2022.06.30 |
(C++) - 백준(BOJ) 12919 : A와 B 2 (0) | 2022.06.30 |
(C++) - 백준(BOJ) 22251 : 빌런 호석 (0) | 2022.06.30 |
(C++) - 백준(BOJ) 9081 : 단어 맞추기 (0) | 2022.06.28 |