코드 검토
153
작성한 질문수 28
안녕하세요 제가 강의듣기 전에 풀어보았는데
저의 경우 처음 dfs()를 호출할때 for문으로 돌려서 했는데 이런식으로 해도 괜찮을까요?
function solution(n, m) {
let answer_arr = [],
answer_cnt = 0;
let arr = Array.from({ length: n }, (v, k) => k + 1);
function dfs(k, str, cnt) {
if (cnt > m) {
answer_arr.includes(str) || answer_arr.push(str);
} else {
str += k + " ";
for (let x of arr) dfs(x, str, cnt + 1);
}
}
for (let x of arr) dfs(x, "", 1);
return answer_arr;
}
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
00님, 자바스크립트 알고리즘 문제를 풀면서 고민하신 부분에 관해 질문해주셨군요.
주신 코드를 살펴보았을 때, dfs() 함수를 호출하는 부분에서 for문을 사용하여 각 요소를 시작점으로 하는 순회를 진행하고 있습니다. 이러한 접근 방식은 완전 탐색을 수행하며 모든 가능한 경우의 수를 탐색하기 위한 일반적인 방식입니다. 따라서, 제시된 문제 상황에서 이와 같은 방법을 사용하는 것은 적절합니다.
다만, 코드에서 answer_arr 배열에 문자열을 저장하는 방식으로 중복을 피하는 로직을 사용하고 계신데, 이 경우 효율성 측면에서 개선의 여지가 있어 보입니다. answer_arr.includes() 메서드는 배열의 모든 요소를 확인해야 하므로 처리 시간이 많이 걸릴 수 있습니다. 중복을 방지하기 위한 더 효과적인 자료구조(예: Set)나 알고리즘을 고려해볼 수 있습니다.
그럼 강의를 통해 더 많은 지식을 얻으시길 바랍니다. 화이팅입니다!
continue를 사용하는 이유
0
79
2
정렬 가능 여부 판단하기
0
64
2
알고리즘 학습법 관련해서 질문드립니다.
0
86
1
코드 리뷰 부탁드립니다!
0
90
1
indexOf를 사용해서 풀어보았습니다 !!
0
68
1
저는 이런식으로 구현 해보았습니다 !!
0
64
1
12,13,14 강의 소리만 나오고 검은 화면입니다
0
100
3
반복문 최소화하고 indexOf 사용해서 풀어봤습니다
0
63
1
영상 보기 전에 직접 풀어봤습니다.
0
74
1
섹션1의 17번문제 이 풀이로 풀어도 될까요?
0
135
2
정규표현식으로 처리해도 상관없나요 ?
0
120
2
3칸씩 건너뛸 수 있을 경우
0
125
2
강의에 대해 질문있습니다.
0
135
2
Object와 Set을 이용해 풀어봤습니다.
0
117
2
이렇게 해도 되나요?
0
102
2
선생님 중복 단어나 중복관련 문제들은 set을 이용하면 좋을것 같습니다.
0
145
2
이렇게 풀어도 괜찮을까요?
0
138
1
이렇게 풀어도 괜찮을까요?
0
112
1
모든 아나그램 찾기에서 시간복잡도
0
98
1
코드리뷰 부탁드립니다.
0
130
1
for loop 탈출은 return 문으로 해도 되지 않나요?
0
133
1
투포인트알고리즘으로 풀어봤습니다.
0
142
0
코드 리뷰 부탁드립니다.
0
120
1
코드 맞게 작성한 거 아닌가여??
0
146
1





