땅지원
땅지원's Personal blog
땅지원
전체 방문자
오늘
어제
  • 전체 (353)
    • Frontend (2)
      • React (2)
    • Backend (90)
      • Java (16)
      • Python (19)
      • Spring (23)
      • Database (21)
      • Troubleshooting (8)
    • DevOps (27)
      • ELK (13)
    • CS (40)
    • OS (2)
      • Linux (2)
    • Algorithm (95)
      • concept (18)
      • Algorithm Problem (77)
    • 인공지능 (25)
      • 인공지능 (12)
      • 연구노트 (13)
    • 수업정리 (35)
      • 임베디드 시스템 (10)
      • 데이터통신 (17)
      • Linux (8)
    • 한국정보통신학회 (5)
      • 학술대회 (4)
      • 논문지 (1)
    • 수상기록 (8)
      • 수상기록 (6)
      • 특허 (2)
    • 삼성 청년 SW 아카데미 (6)
    • 42seoul (12)
    • Toy project (3)
    • 땅's 낙서장 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • 20.11.6 BB21플러스 온라인 학술대회
  • 20.10.30 한국정보통신학회 온라인 학술대회

인기 글

태그

  • E
  • I
  • D
  • ㅗ
  • 이것이 리눅스다 with Rocky Linux9

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
땅지원

땅지원's Personal blog

Algorithm/Algorithm Problem

백준 1931 회의실 배정

2021. 11. 16. 16:01

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

 

1931번: 회의실 배정

(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.

www.acmicpc.net

 

n = int(input())
data = []

for i in range(n):
    start_time, end_time = map(int,input().split())
    data.append([start_time,end_time])

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

last = 0
conut = 0

for i, j in data:
  if i >= last:
    conut += 1
    last = j

print(conut)

회의 시간이 겹치지 않으면서 가능한 회의를 가장 많이 할 수 있게 하려면 어떻게 해야하는가?

빨리 끝나는 회의 순서대로 정렬을 해야한다.

빨리 끝날수록 뒤에서 고려해볼 회의가 많기 때문이다.

빨리 시작하는 순서대로 정렬을 우선 한다면, 오히려 늦게 끝날 수 있기 때문이다.
이를 통해 그리디 알고리즘이라는 것과 정렬을 이용해야 한다는 것을 알았다.

 

하나 더 고려할 점은

끝나는 시간이 같다면 빨리 시작하는 순서대로 정렬이 되어야 한다.

예를 들자면

2

2 2

1 2

같은 상황때문에 시작하는 시간의 오름차순으로 정렬을 한번 더 해줘야한다.

그렇기 때문에 정렬을 1. 끝나는 시간의 오름차순 2. 시작하는 시간의 오름차순으로 해주어야 한다.

'Algorithm > Algorithm Problem' 카테고리의 다른 글

Python Asterisk(*) 사용 용도  (0) 2022.01.03
백준 15649,15650 N과 M(Backtracking)  (0) 2021.11.21
백준 6064 카잉 달력  (0) 2021.11.04
백준 17427 약수의 합2  (0) 2021.11.02
##백준 15990 1, 2, 3 더하기5  (0) 2021.10.29
    'Algorithm/Algorithm Problem' 카테고리의 다른 글
    • Python Asterisk(*) 사용 용도
    • 백준 15649,15650 N과 M(Backtracking)
    • 백준 6064 카잉 달력
    • 백준 17427 약수의 합2
    땅지원
    땅지원
    신입 개발자의 우당탕탕 기술 블로그

    티스토리툴바