![article thumbnail image](https://blog.kakaocdn.net/dn/dwC26V/btq2iVb2mjk/rJPw3X05xwZoBYtETRibG0/img.png)
728x90
이 문제의 핵심은 바로
한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다
바로 이부분이다.
즉 (1,3)(3,3) 의 입력값이 들어왔을때 (3,3)이 먼저 배열된다면 (1,3)은 count에서 빠져 치명적인 오류가 될 수 있다는 것이다 그래서 시작하는 시간을 오름차순으로 먼저 배열하고 그 다음 끝나는 시간을 다시 오름차순으로 배열하는 것이 중요하다.
n = int(input())
array = []
for i in range(n):
start, end = map(int, input().split()) #map 은 함수와 리스트를 인자로 받는다. 리스트로부터 원소를 하나씩 받아 함수를 적용해 새로운 리스트로 작성
array.append((start,end)) # (start,end) 이렇게 괄호로 묶어주어한다.
array = sorted(array, key = lambda a : a[0]) #우선 시작 시간으로 오름차순 배열을 한다. sorted 는 기본적으로 오름차순.
array = sorted(array, key = lambda a : a[1]) #그 다음 끝나는 시간을 내림차순으로 배열한다.
endtime = 0
count = 0
for i in array:
if i[0] >= endtime:
endtime = i[1]
count += 1
else:
continue
print(count)
처음에 끝나는 시간만 고려했다가 안풀려 고생했던 문제....
'Algorithm' 카테고리의 다른 글
백준 알고리즘 파이썬(Python) 19598번 최소 회의실 개수 (0) | 2021.04.15 |
---|---|
백준 알고리즘 파이썬(Python) 2217번 로프 (0) | 2021.04.14 |
백준 알고리즘 파이썬(Python) 14916번 거스름돈 (0) | 2021.04.14 |
백준 알고리즘 파이썬(Python) 2141번 우체국 (0) | 2021.04.11 |
백준 알고리즘 파이썬(Python) 1541번 잃어버린 괄호 (0) | 2021.04.11 |