개발적인/알고리즘

[백준] 1931번

klm hyeon woo 2022. 5. 8. 21:33

처음에 접근법을 조금 해맸다, 값은 정확하게 도출이 되지만 시간 초과가 되어서

반복문을 너무 사용한 탓으로 판단을 하고 접근법을 바꾸었다.

람다 함수를 사용하여 정렬을 시켜주어 첫 시작시간을 최솟 시작시간으로, 반복문을 돌리면서 처음 정해놓았던 최소 종료시간보다 크거나 같다면

변경을 해주면서 루프를 해주는 형식으로 코드를 구현하였다. 파이썬으로 풀이한 과정은 다음과 같다.

num = int(input())
times = []
count = 1

for i in range (num):
    time = tuple(map(int, input().split()))
    times.append(time)

times.sort(key = lambda x: x[0])
times.sort(key = lambda x: x[1])

endTime = times[0][1]

for i in range (1, num):
    if (times[i][0] >= endTime):
        endTime = times[i][1]
        count += 1
    
print(count)