강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

용용용님의 프로필 이미지
용용용

작성한 질문수

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

[추가영상] 병합정렬-2

안녕하세요!

작성

·

228

1

선생님 이런 에러는 왜 생기는걸까요 ? ㅜㅜ

퀴즈

46%나 틀려요. 한번 도전해보세요!

탐색 알고리즘인 DFS와 BFS의 가장 큰 차이점은 무엇일까요?

탐색 시작 노드

탐색 방향

사용 자료구조

방문 기록 여부

답변 2

0

김태원님의 프로필 이미지
김태원
지식공유자

안녕하세요^^

tmp.append(arr[p1:mid+1])

이렇게 하면 tmp라는 리스트에 새로은 리스트를 넣어 2차원 리스트가 됩니다.

tmp=tmp+arr[p1:mid+1] 이렇게 해야 일차원리스트 + 일차원리스트=일차원리스트가 됩니다.

0

용용용님의 프로필 이미지
용용용
질문자

def Dsort(lt, rt):

    if lt < rt:

        mid = (lt+rt)//2

        Dsort(lt, mid)

        Dsort(mid+1, rt)

        p1 = lt

        p2 = mid+1

        tmp = []

        while p1 <= mid and p2 <= rt:

            if arr[p1] < arr[p2]:

                tmp.append(arr[p1])

                p1+=1

            else:

                tmp.append(arr[p2])

                p2+=1

        if p1 <= mid: tmp.append(arr[p1:mid+1])

        if p2 <= rt: tmp.append(arr[p2:rt+1])

        for i in range(len(tmp)):

            arr[lt+i] = tmp[i]

if __name__ == "__main__":

    arr = [23, 11, 45, 36, 15, 67, 33, 21]

    Dsort(0,7)

    print(arr)

용용용님의 프로필 이미지
용용용

작성한 질문수

질문하기