강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của iamcodingcat
iamcodingcat

câu hỏi đã được viết

Giới thiệu về giải bài toán bằng thuật toán Python (chuẩn bị cho bài kiểm tra viết mã)

[Kiến thức tiên quyết] Hàm đệ quy và ngăn xếp (quan trọng)

DFS를 활용한 슬라이딩 윈도우 결과 만드는 방법 질문입니다!

Viết

·

479

0

안녕하세요! 강의 잘 듣고 있습니다! 강의 내용과 살짝 벗어나긴 한데 너무 궁금해서 질문드립니다 ㅜㅜ 구체적인 방법론을 제게 알려주시기보다 가능하다/불가능하다로만 답변 주시면 감사하겠습니다! 그 이후로는 제가 연구해볼게요!

아래과 같은 리스트가 존재할 때, 1개부터 5개까지 슬라이딩 윈도우 경우의 수를 탐색하고 싶을 때 DFS를 활용해서 구현할 수 있나요??

예를 들어, [1,2,3] 이 있을 때, 결과값이 [1], [2], [3], [1,2], [2,3], [1,2,3] 이렇게 결과가 나오는 것을 DFS로는 구현이 가능한가요? 이중 for loop로 구현은 했는데.. 이게 리스트 크기가 커지면 시간초과 문제가 발생할 것 같아 DFS로 구현하는 방법이 있나 문의드립니다 ㅜㅜ 가능하다/불가능하다로만 답변주시면 정말 감사하겠습니다!

제가 이중 loop로 구현한 코드는 아래와 같습니다!

sets = ['a', 'b', 'c', 'd', 'e']
n = len(sets)
for size in range(1, n+1):
    for i in range(n-size+1):
        window = sets[i:i+size]
        print(''.join(window))

 

python코테 준비 같이 해요!

Câu trả lời 4

0

iamcodingcat님의 프로필 이미지
iamcodingcat
Người đặt câu hỏi

강사님 애써 구현해보려고 했는데.. 상태트리를 만들긴 했는데, 이를 어떻게 구현해야 할지 모르겠습니다..  아래와 같이 2개 갈래길로 만드는 것 말고 여러갈래길로 만드는 방법도 구현해보았는데 아닌 것 같고... 흐.. 너무 힘드네요.. 힌트를 조금 주실 수 있으실지...ㅜㅜ 문의드립니다.. 구글링해도 참조 코드도 안나오네요..

 

0

codingcamp님의 프로필 이미지
codingcamp
Người chia sẻ kiến thức

안녕하세요^^

제 생각에는 2중 for문이 재귀보다 성능면에서는 더 좋을 겁니다.

0

iamcodingcat님의 프로필 이미지
iamcodingcat
Người đặt câu hỏi

강사님! 그렇다면 제가 구현했던 이중리스트 방식보다 재귀함수를 활용한 DFS 방식이 시간 복잡도 면에서 훨씬 효율적인가요!? 재귀함수에 대한 시간 복잡도를 어떻게 계산할지 잘 모르겟네용..

0

codingcamp님의 프로필 이미지
codingcamp
Người chia sẻ kiến thức

안녕하세요^^

DFS로 가능합니다.

iamcodingcat님의 프로필 이미지
iamcodingcat
Người đặt câu hỏi

답변 감사합니다! 한 번 혼자 스스로 고민해보겠습니다!

Hình ảnh hồ sơ của iamcodingcat
iamcodingcat

câu hỏi đã được viết

Đặt câu hỏi