인프런 김태원님의 파이썬 알고리즘 문제풀이 강의를 듣고 작성한 글입니다.
파이썬 알고리즘 문제풀이 (코딩테스트 대비) - 인프런 | 강의
파이썬을 이용한 코딩테스트 문제풀이를 합니다., - 강의 소개 | 인프런...
www.inflearn.com

고민을 했는데
가장 빨리 끝나는 회의를 계속 먼저 잡으면 될것 같다는 생각을 했으나
코드가 깔끔하게 나오지않아서 강의를 봤다.
#강의 풀이
n = int(input())
meeting = []
for i in range(n):
s, e = map(int, input().split())
meeting.append((s, e))
meeting.sort(key=lambda x: (x[1], x[0]))
print(meeting)
et = 0
cnt = 0
for s, e in meeting:
if s >= et:
et = e
cnt += 1
print(cnt)
가장 빨리 끝나는 회의를 계속 먼저 시작하면 된다.
그러기 위해서는 정렬함수를 알아야한다.
sort의 key = lambda 함수 부분을 기억해두자
그리고 그 회의가 끝나는 시각을 end time = et로 잡고
다음 회의시작 시간이 et보다 크거나 같으면
다음 회의로 cnt += 1 하면된다.
'알고리즘 (Python)' 카테고리의 다른 글
가장 큰 수(스택) (0) | 2022.03.27 |
---|---|
역수열 (그리디) (0) | 2022.03.26 |
마구간 정하기 (결정알고리즘, 이분탐색) (0) | 2022.03.24 |
랜선자르기 (결정알고리즘, 이분탐색) (0) | 2022.03.24 |
사과나무 (다이아몬드) (0) | 2022.03.23 |
댓글