[백준] 9579 책 나눠주기

ganta·2021년 3월 20일
0

알고리즘 문제해결

목록 보기
9/24

✔️ 문제 링크

https://www.acmicpc.net/problem/9576

💡 핵심 아이디어

1️⃣ 탐욕 알고리즘의 사용

2️⃣ 각 사람이 원하는 범위중 최대 번호의 순으로 오름차순으로 정렬

3️⃣ 범위를 순회하며 부여할 수 있는 책의 최소번호마다 책을 줌

⭐️ 소스 코드

if __name__ == '__main__':
    T = int(input())
    for t in range(T):
        N, M = list(map(int, input().split()))
        arr_list = []
        ans = 0
        for i in range(M):
            a, b = list(map(int, input().split()))
            arr_list.append((a, b))
        arr_list.sort(key = lambda x: x[1])
        book_set = set()
        for search in arr_list:
            for i in range(search[0], search[1] + 1):
                if i not in book_set:
                    book_set.add(i)
                    ans += 1
                    break
        print(ans)
profile
한걸음씩 꾸준히

0개의 댓글