본문 바로가기
개발적인/알고리즘

[백준] 1931번

by klm hyeon woo 2022. 5. 8.

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

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

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

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

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)

 

'개발적인 > 알고리즘' 카테고리의 다른 글

[프로그래머스] 옹알이(1)  (0) 2022.11.08
[프로그래머스] JadenCase 문자열 만들기  (0) 2022.09.16
[백준] 11047번  (0) 2022.05.06
[백준] 11399번  (0) 2022.05.06
[백준] 2839번  (0) 2022.05.06

댓글