인프런 커뮤니티 질문&답변

siny7177님의 프로필 이미지
siny7177

작성한 질문수

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

5. 회의실 배정(그리디)

시간 초과

작성

·

223

0

구현하신 알고리즘으로 하면 input 5 번에서 시간초과가 납니다. 더 빠르게 구하는 방법이 있나요?

답변 4

2

김태원님의 프로필 이미지
김태원
지식공유자

둘의 차이는 시간복잡도의 차이보다는 정렬방식의 차이가 있습니다.

meeting.sort(key = lambda x: (x[1], x[0]) 이 코드는 회의 종료시간이 같을 경우 시작시간을 기준으로 오름차순 정렬하는 것이고, meeting.sort(key = lambda x: x[1]) 방법은 회의 종료시간이 같으면 그냥 입력순을 그대로 유지합니다.

아마 님코드가 제가 드린 폴더에서는 100점이 나오지만  백준사이트 1931번(회의실 배정) 에서 채점하면 100점이 안나올 겁니다. 거기 입력에는 회의 시작시간과 종료시간이 같은 경우도 존재한다고 있습니다. 즉 다음과 같은 입력

3

3 3

1 3

2 3

이런 입력이 있다면 님 코드는 1을 답으로 합니다. 실제 답은 2입니다.

0

그런 차이가 있었군요! 친절한 답변 정말 감사드립니다 ^^

0

선생님꼐서 올려주신 정렬 코드인 

meeting.sort(key = lambda x: (x[1], x[0]) 과, 

제가 쓴 코드인 

meeting.sort(key = lambda x: x[1])

의 차이점이 궁금합니다! 저는  meeting의 원소를 튜플이 아닌 리스트 구조를 사용했는데, 혹시 시간복잡도 측면에서 두 방법이 차이가 있나요?

0

김태원님의 프로필 이미지
김태원
지식공유자

채점은 siny7177님의 컴퓨터가 합니다.  채점하는 컴퓨터 성능에 따라 시간초과가 뜨기도 합니다.  영상을 마지막부분을 보시면 아시겠지만 제 컴퓨터에서도 5번은 간신히 1초를 통과합니다. 그래도 그냥 문제를 만들때 N제한을 100,000으로 설정했습니다.  

그리디보다 더 빠른 방법은 알지 못합니다. 

그리고 파이썬임을 감안해서 Judge(Python-5) 파일을 첨부한 것이니 이 실행파일로 채점하시기 바랍니다.

siny7177님의 프로필 이미지
siny7177

작성한 질문수

질문하기