inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

1. 이분 검색

섹션4-1번 문제 에러의 원인?

1137

서연비

작성한 질문수 2

0

안녕하세요 강사님! [섹션4. 이분탐색&그리디 알고리즘]단원에 1번문제[이분검색]를 풀다가 궁금한점이 생겨서 질문 남기게되었습니다.

저는 함수를 만들어서 코드를 구현했는데요, 여기서 에러가 뜨더라구요 ..

에러.png

찾아보니까 'None' 타입인 값에 인덱스로 접근하려고 해서 발생한 에러라고 나오는데, 며칠 공부했는데도 제가 작성한 코드에서 어떻게 수정해야할지 모르겠어서 질문 드리게되었습니다.

아래는 제가 처음에 풀었던 풀이입니다. 답변 주시면 감사하겠습니다.

def binary_search(target, array, s, e):
    array = array.sort()
    mid = (s+e)//2
    
    if s > e : # 애초에 성립 불가한 경우
        return None
    
    if array[mid] == target : # (1) 타겟값을 찾은 경우
        return mid
    
    elif array[mid] > target : # (2) 중간값이 타겟값보다 큰 경우
        return binary_search(target, array, start, mid-1)
        
    else: # (3) 중간값이 타겟값보다 작은 경우
        return binary_search(target, array, mid+1, end)
    
    
N, M = map(int, input().split())
array = list(map(int, input().split()))

res = binary_search(M, array, 0, N-1)

print(res+1)

python 코딩-테스트

답변 1

0

김태원

안녕하세요^^

a.sort()는 a리스트 자체를 정렬 변경합니다. 반환값은 None입니다.

sorted(a)는 a리스트를 정렬한 새로운 리스트를 생성해 반환해줍니다.

array.sort()로 하든지 아니면 array = sorted(array)로 해야 합니다.

기존에 윈도우 10으로 잘 써왔는데 윈도우 11로 바꾸고 나서 채점이 안됩니다.

1

78

2

스택에서 ')'을 만나는 경우

0

80

3

문제가 어디있나요?

0

67

2

변수 or 함수명

0

62

1

침몰하는 타이타닉 문제 질문입니다

0

59

1

AA.py 책점 에러

0

60

1

오늘 구매했는데 파이썬 자료구조 궁금한거 있으면 답변이 잘 될까요.

0

111

2

5.동전분배하기 문제 밑에코드도 정답이될까요?

0

110

1

아나그램 비교 코드

0

116

2

AA.PY파일 복사 후 채점 진행할때 오류 발생합니다.

0

161

2

문제 링크가있나여?

0

147

2

채점기 Time Limit Exceeded 오류 문의

1

166

2

동적계획법은 사용하는 문제

0

126

2

제 코드 좀 봐주세요

0

148

1

예외가 존재할 가능성?

0

97

1

3번이 안풀립니다

0

95

0

5번 틀림

0

115

0

오류원인?

0

99

0

리스트 선언

0

108

1

침몰하는 타이타닉(그리디) 문제 질문

0

111

1

알고리즘

0

70

1

코딩테스트

0

93

1

DFS 순서 질문드립니다.

0

129

2

left, right를 사용한 풀이법에 대한 질문입니다

0

91

1