• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    해결됨

코드 시간 초과

20.08.31 13:19 작성 조회수 188

0

안녕하세요. 항상 강의 잘 보고 있습니다.

랜선자르기 문제에서 코드를 작성했는데 시간초과가 나와 질문드립니다.

선생님이 작성하신 코드와 다른점은 Count함수를 따로 만들지 않고 while문 안에서 for문으로 반복처리 했을 뿐인데 시간초과가 나오네요.. 

미리 함수를 만들어 놓고 while문 안에서 for문이 들어있는 함수를 실행하는 것과, while문 안에 for문을 바로 넣는게 처리 시간이 다른가요?? 제 함수는 아래와 같습니다.

import sys
#sys.stdin=open("in2.txt", "rt")

k,n=map(int, input().split())
lst=sys.stdin.readlines()
lst=[int(i) for i in lst]

lt=1
rt=max(lst)
longest=0
while lt<=rt:
    mid=(lt+rt)//2
    cnt=0
    for i in lst:
        cnt+=i//mid

    if cnt>=n:
        longest=mid
        lt=mid+1
    else:
        rt=mid-1

print(longest)

답변 2

·

답변을 작성해보세요.

1

안녕하세요^^

위 코드가 파일입출력에서는 아무 문제가 없습니다. 하지만 파일입출력을 주석처리하고 쉘창에서 입력하면 readlines()함수는 줄바꿈 기호까지 읽어들려 제대로 입력이 되지 않습니다. 입력형식을 영상에서 제가 하는 방식으로 했으면 합니다.

0

입력형식을 바꾸니까 잘 되네요. 감사합니다