백준/Greedy

[그리디/백준] 1931번: 회의실 배정

ydin 2022. 6. 23. 11:07

-문제:https://www.acmicpc.net/problem/1931

 

-정답 풀이: 

처음에는 i와 i-1의 회의만 비교했는데, 그렇게 하면 조건 만족하지만 멀리 떨어져있는 회의들끼리는 비교할 수가 없다. 

그래서 조건 만족하는 회의들을 모아놓고 싶었는데, 그게 잘 안됐다. 

 

이전 회의 끝난 시간은 last에 저장해서 비교하면된다. 

n=int(input())
data=[]
for _ in range(n):
    data.append(list(map(int,input().split()))) 
data.sort(key=lambda x : x[0])    
data.sort(key=lambda x : x[1])
count=0
last=0
for i,j in data:
    if i>=last:
        count+=1
        last=j
print(count)

 

-시도해본 풀이:

이렇게 풀면 시간초과가 난다

n=int(input())
data=[]
for _ in range(n):
    data.append(list(map(int,input().split()))) 
data.sort(key=lambda x : x[0])    
data.sort(key=lambda x : x[1])
count=0
answer=0
for i in range(n):
    for j in range(i+1):
        if data[i][1]<=data[j][0]:
            count+=1
    answer=max(count,answer)
            
print(answer)