input: Write a python function to check room availability given a list of bookings and a date range.
  assert check_room_availability(rooms, bookings, '2023-10-01', '2023-10-10') == [1, 2, 3]
  assert check_room_availability(rooms, bookings, '2023-11-01', '2023-11-05') == [2, 3]
  assert check_room_availability(rooms, bookings, '2023-12-15', '2023-12-20') == [1, 3]
output: from datetime import datetime
  
  def check_room_availability(rooms, bookings, start_date, end_date):
      start_date = datetime.strptime(start_date, '%Y-%m-%d')
      end_date = datetime.strptime(end_date, '%Y-%m-%d')
      
      available_rooms = set(rooms)
      
      for booking in bookings:
          room, booking_start, booking_end = booking
          booking_start = datetime.strptime(booking_start, '%Y-%m-%d')
          booking_end = datetime.strptime(booking_end, '%Y-%m-%d')
          
          if (start_date <= booking_end and end_date >= booking_start):
              available_rooms.discard(room)
      
      return list(available_rooms)
  
  rooms = [1, 2, 3]
  bookings = [
      (1, '2023-10-05', '2023-10-10'),
      (2, '2023-11-01', '2023-11-03'),
      (1, '2023-12-15', '2023-12-15')
  ]