해결된 질문
작성
·
149
0
몇 챕터/몇 강을 수강 중이신가요?
어떤 알고리즘을 학습하고 계신가요?
여기까지 이해하신 내용은 무엇인가요?
어느 부분에서 막히셨나요?
코드의 어떤 로직이 이해가 안 되시나요?
어떤 개념이 헷갈리시나요?
문제 해결을 위해 어떤 시도를 해보셨나요?
에러가 발생했다면 어떤 에러인가요?
현재 작성하신 코드를 공유해주세요
이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다! 😊
merge 함수에 return이 빠진거같습니다!
답변 4
0
오 발견했습니다 viktor 님!!! 당장 변경했습니다
발견해주셔서 넘넘 감사드려요 ㅎㅎㅎ
감사의 의미로 커피 기프티콘을 드리고 싶습니다 아래 카카오톡 오픈 링크로 연락 부탁드립니다!!
https://open.kakao.com/me/ding_coding_co
감사합니다
0
[코드스니펫] 병합정렬 - merge
^ 이쪽입니다!
바로 아래 해결 방법입니다!
array_a = [1, 2, 3, 5]
array_b = [4, 6, 7, 8]
def merge(array1, array2):
result = []
array1_index = 0
array2_index = 0
while array1_index < len(array1) and array2_index < len(array2):
if array1[array1_index] < array2[array2_index]:
result.append(array1[array1_index])
array1_index += 1
else:
result.append(array2[array2_index])
array2_index += 1
while array1_index < len(array1):
result.append(array1[array1_index])
array1_index += 1
while array2_index < len(array2):
result.append(array2[array2_index])
array2_index += 1
## return result ## return result 가 없음
print(merge(array_a, array_b))
print("정답 = [-7, -1, 5, 6, 9, 10, 11, 40] / 현재 풀이 값 = ", merge([-7, -1, 9, 40], [5, 6, 10, 11]))
print("정답 = [-1, 2, 3, 5, 10, 40, 78, 100] / 현재 풀이 값 = ", merge([-1,2,3,5,40], [10,78,100]))
print("정답 = [-1, -1, 0, 1, 6, 9, 10] / 현재 풀이 값 = ", merge([-1,-1,0], [1, 6, 9, 10]))
0
안녕하세요 viktor님!! 좋은 질문 남겨주셔서 감사합니다
제가 코드 부분과 영상 부분에 merge 함수에 return 이 빠진 부분을 찾아봤습니다
우선 코드 내에서는 이렇게 되어있고,
def merge(array1, array2):
result = []
array1_index = 0
array2_index = 0
while array1_index < len(array1) and array2_index < len(array2):
if array1[array1_index] < array2[array2_index]:
result.append(array1[array1_index])
array1_index += 1
else:
result.append(array2[array2_index])
array2_index += 1
while array1_index < len(array1):
result.append(array1[array1_index])
array1_index += 1
while array2_index < len(array2):
result.append(array2[array2_index])
array2_index += 1
# 이 부분을 채워보세요!
return result
영상(3-4. 정렬 - 3 의 7:44)내 에서도 return 문이 있는것으로 파악했습니다
혹시 어떤 부분에 return 이 없는지 알려주실 수 있을까요? 꼭 개선하겠습니다 __
3-4. 정렬 - 33-4. 정렬 - 3
0
안녕하세요, 인프런 AI 인턴입니다.
viktor2222123님, 병합 정렬의 해결 방법에 대해 궁금하신 점이 있으시군요.
병합 정렬(Merge Sort)은 분할 정복(divide and conquer) 알고리즘의 대표적인 예시로, 리스트를 두 부분으로 나누고, 각각을 재귀적으로 정렬한 후, 두 정렬된 부분을 병합하는 과정입니다.
병합 정렬의 로직:
병합 함수에서의 문제:
return
값이 없거나, 올바르지 않을 경우, 정렬이 정상적으로 완료되지 않을 수 있습니다.return
값이 빠져 있다면 결과가 제대로 전달되지 않을 수 있습니다.해결 방법:
return
하도록 함수를 수정하세요.def merge(left, right):
result = []
while left and right:
if left[0] <= right[0]:
result.append(left.pop(0))
else:
result.append(right.pop(0))
# 남아있는 요소들 추가
result.extend(left or right)
return result
viktor2222123님께서 좀 더 정확하게 시도하신 내용을 알려주시면, 문제 해결에 더 도움이 될 수 있을 것입니다. 추가적인 어려움이나 질문이 있다면 언제든지 말씀해 주세요! 😊
출처 이미지가 필요한 경우, 코드 작성이나 추가적인 학습 자료를 제공받을 수 있는 인프런 강의 질문하기도 고려해 보세요.