회의실 예약을 위해 시작시간과 종료시간을 n번 입력받기위해
2차원의 리스트를 생성해준다.
n = int(sys.stdin.readline())
room = [[0]*2 for _ in range(n)]
그리고 시작시간의 오름차순으로 정렬해주고
다시 끝나는 시간의 오름차순으로 정렬을 해준다.
그럼 시작시간과 끝나는시간이 같은경우에도 앞서 시작시간을 오름차순으로 정렬했기 때문에 카운팅될 수 있다.
room = sorted(room, key=lambda a: a[0])
room = sorted(room, key=lambda a: a[1])
키에 익명함수사용을 위한 람다를 사용했는데
리스트형태의 인자를 받아 분리하여 반환하고 이를 키값으로 사용하여 정렬한다.
sort, sorted 함수 참조
그리고
시작시간과 이전 예약의 종료시간을 비교해서 같거나 이전 예약의 종료시간보다 시작시간이 크면 카운팅해준다.
import sys
n = int(sys.stdin.readline())
room = [[0]*2 for _ in range(n)]
for i in range(n):
x,y = map(int,sys.stdin.readline().split())
room[i][0] = x
room[i][1] = y
room = sorted(room, key=lambda a: a[0])
room = sorted(room, key=lambda a: a[1])
cnt = 0
end = 0
for i,j in room:
if i >= end:
cnt += 1
end = j
print(cnt)
'알고리즘' 카테고리의 다른 글
[백준 2156 파이썬] 포도주 시식 (0) | 2021.03.12 |
---|---|
[백준 11399 파이썬] ATM (0) | 2021.03.11 |
[백준 11047] 파이썬 동전 0 (1) | 2021.03.07 |
[백준 파이썬 1002] 백준 python 터렛 1002번 (0) | 2020.11.15 |
백준 1110번 파이썬 : 더하기 사이클 (0) | 2020.08.14 |
댓글