반응형
문제
풀이과정
깊이 우선 탐색 (DFS) 로 풀었다.
빈문자열부터 A , AA , AAA ... 가면서 찾아간다
ChangeSwitcher 는 값이 나올때 더이상 DFS를 진행시키지 않기위해 두었다.
문자열이 DFS 함수에 들어왓을때 문자열이 5이하 이면 A, E, I, O, U 의 문자열을 추가시켜 각각의 DFS에서 실행시킨다.
풀이코드
function solution(word) {
let dic = ["A","E","I","O","U"];
let ChangeSwitcher = true
let answer = -1;
function DFS(W){
if(ChangeSwitcher){
answer++;
if(W === word){
ChangeSwitcher = false;
return ;
}else if(W !== word && W.length < 5){
for (let i = 0; i < dic.length; i++) {
DFS(W + dic[i]);
}
}else{
return;
}
}
}
DFS("");
return answer;
}
후기
아직도 문제를 파악하는 실력이 부족하다.
다른사람의 풀이를 보면서 등비수열로 푸는 분들이 많았다.
코드를 단순화 시키면서 풀 수 있는 방법들 연구하면서 공부해야겟다.
반응형
'알고리즘' 카테고리의 다른 글
오픈채팅방 (42888 / 프로그래머스 / JavaScript) (0) | 2021.12.21 |
---|---|
124나라의 숫자 ( 12899 / 프로그래머스 / JavaScript) (0) | 2021.12.03 |
거리두기 확인하기 (81302 / 프로그래머스 / JavaScript) (0) | 2021.12.02 |