iwtbakgj   2년 전

이 문제를 풀기 위해 알아보던 중 이진탐색에 대해 알게 되었고, 그걸 적용해보았더니 여전히 시간초과가 나옵니다. 혹시 아시는 분은 댓글 남겨주시면 감사하겠습니다.

djm03178   2년 전

정렬은 처음에 한 번만 하면 됩니다. 이분 탐색을 할 때마다 매번 할 필요가 없습니다. 시간 복잡도가 O(NMlogN)입니다.

iwtbakgj   2년 전

이번엔 런타임 에러가 뜨는데 혹시 이유 아실까요?

iwtbakgj   2년 전

Untitled

import sys
a=int(sys.stdin.readline())
m=list(map(int,sys.stdin.readline().split()))

def chat(target,m):
    start=0
    end=len(x)-1
    while start<=end:
        mid=(start+end)//2
        if target==m[mid]:
            return 1
        elif target<m[mid]:
            end=mid-1
        else:
            start=mid+1
    return 0

b=int(sys.stdin.readline())
x=list(map(int,sys.stdin.readline().split()))
m.sort()
for i in x:
    print(chat(i,m))
이렇게 해봤습니다.

djm03178   2년 전

end=lex(x)-1에서 x 대신 m으로 바꿔야 합니다.

댓글을 작성하려면 로그인해야 합니다.