# #1931 : 회의실
import sys
input = sys.stdin.readline
n=int(input())
time=[]
for _ in range(n):
startTime,endTime=map(int,input().split())
time.append([startTime,endTime])
time.sort(key=lambda x:x[0])
time.sort(key=lambda x:x[1])
last=0;cnt=0
for i,j in time:
if i>=last:
cnt+=1
last=j
print(cnt)
import sys
input = sys.stdin.readline
n=int(input())
time=[]
for _ in range(n):
startTime,endTime=map(int,input().split())
time.append([startTime,endTime])
time=sorted(time,key=lambda x:x[0])
time=sorted(time,key=lambda x:x[1])
last=0;cnt=0
for i,j in time:
if i>=last:
cnt+=1
last=j
print(cnt)
참 오랜시간 고민한 문제이다
그리디알고리즘 문제로 회의시간을 입력받아서 최대로 회의를 많이 진행할수있는 수를 찾는것인데
리스트를 입력받는것까진 생각했지만
0,1번째 각각의 요소를 정렬하는 것을 생각하지 못했다.
거기에 그리디로 마지막으로 끝난 회의시간을 매번 초기화 해주면서 반복문을 진행하며 cnt를 올려가는게 인상적이였다.
sorted는 원본값을 수정하지 않고 sort는 원본값을 수정하고 둘이 쓰는 방식도 달라서 둘다 돌려봤는데 sort가 더 적은 시간이 나왔다 이유는 모르겠다랑..