아직 계정이 없으신가요? 회원가입

Algo Tutor #강의실 배정
Softeer 관리자 2672 views · 2021-01-25 17:18


댓글 5

  • 박형진
    2021-08-26 16:50:27
    https://www.acmicpc.net/problem/1931
    
    똑같은 문제에 똑같은 제한인듯한데. softeer에서는 코드가 정답 처리 되지 않습니다
    혹시 제가 잘못 푼 부분이 있을까요?
    
    import sys
    
    n = int(input())
    
    classes = []
    for _ in range(n):
        start, end = map(int, input().split())
        classes.append((start, end))
    
    
    classes.sort(key = lambda x: (x[1], x[0]))
    answer = 0
    now = 0
    
    for start, end in classes:
        if now <= start:
            answer+=1
            now = end
        
    print(answer)
  • 김기항
    2021-09-07 10:41:46
    안녕하세요. 정답을 도출해 내는 것에는 문제 없어 보이는 풀이지만, url로 기재해주신 문제보다 N제한이 커서 시간초과에 걸리는 것으로 예상됩니다. 시간제한을 고려하셔서 다시 풀어 보시면 좋을 것 같습니다.
  • 장원석
    2021-10-21 09:51:52
    윗분 코드에서 수행시간을 줄일 여지는 많지 않아 보입니다. 혹시나 해서 heapq 를 사용해서 해 봤는데도 시간초과에 걸리네요.
    
    import heapq
    
    n = int(input())
    lect = []
    for i in range(n):
        s, f = map(int, input().split())
        heapq.heappush(lect, (f, s))
    
    ff = 0
    numlect = 0
    while lect:
        f, s = heapq.heappop(lect)
        if s < ff:
            continue
        ff = f
        numlect += 1
    
    print(numlect)
    
    제가 보기엔 파이썬에 대한 시간제한이 지나치게 타이트한 것 같습니다. 개선이 필요하다 생각됩니다.
  • 오승현
    2021-10-21 12:28:56
    @장원석 input = sys.stdin.readline 으로 해보세요
    
  • 장원석
    2021-10-22 08:54:54
    오승현님 감사합니다. sys.stdin.readline 으로 해결이 되었습니다.