편집 기록

편집 기록
  • 프로필 엽토군님의 편집
    날짜2020.09.26

    python 코드 최적화 질문입니다.


    실행시간,메모리 측정해서 코드 짜고 있는데 간당간당하게 제한걸린 실행시간이 넘어가서 어떤 부분을 수정하면 조금 더 줄일 수 있을지 알아보고 싶습니다. 입력되는 데이터를 처음부터 정수형으로 받으면 좋을 것 같은데 불필요하게 형변환이 끼니까 시간 맞추기가 너무 힘드네요

    from sys import stdin
    
    N=int(stdin.readline())                         #주어진 정보 읽어오기
    n=list(map(int, stdin.readline().split()))      #문자열에서 int형으로 변환       
    Q=int(stdin.readline())
    q=list(map(int, stdin.readline().split()))
    
    def binarySearch(nArr, low, high, qArr):        #탐색
        while low <= high:
            mid = (low + high)//2
            if nArr[mid] == qArr:
                return mid
            elif nArr[mid] < qArr:
                low = mid + 1
            else:
                high = mid - 1
        return -1
    
    for i in range(Q):                              #결과문 출력
        print(binarySearch(n,0,N-1,q[i]))
    
  • 프로필 알 수 없는 사용자님의 편집
    날짜2020.09.26

    python 코드 최적화 질문입니다.


    실행시간,메모리 측정해서 코드 짜고 있는데 간당간당하게 제한걸린 실행시간이 넘어가서 어떤 부분을 수정하면 조금 더 줄일 수 있을지 알아보고 싶습니다. 입력되는 데이터를 처음부터 정수형으로 받으면 좋을 것 같은데 불필요하게 형변환이 끼니까 시간 맞추기가 너무 힘드네요

    from sys import stdin
    
    N=int(stdin.readline())                         #주어진 정보 읽어오기
    n=list(map(int, stdin.readline().split()))      #문자열에서 int형으로 변환       
    Q=int(stdin.readline())
    q=list(map(int, stdin.readline().split()))
    
    def binarySearch(nArr, low, high, qArr):        #탐색
        while low <= high:
            mid = (low + high)//2
            if nArr[mid] == qArr:
                return mid
            elif nArr[mid] < qArr:
                low = mid + 1
            else:
                  high = mid - 1
    
        return -1
    
    for i in range(Q):                              #결과문 출력
      print(binarySearch(n,0,N-1,q[i]))