• Home
  • About
    • Awesome soubii photo

      Awesome soubii

      초보 개발자의 공부정리용 블로그입니다. 잘못 쓰여진게 있다면 친절히 알려주세요 :)

    • Learn More
    • Twitter
    • Facebook
    • Instagram
    • Github
    • Steam
  • Posts
    • All Posts
    • All Tags
  • Projects

[Algorithm]1931 회의실배정 By Python3

23 Aug 2020

Reading time ~1 minute

오늘의 문제

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

이해하는데에 시간이 많이 걸린 문제였다. 구신의 도움을 받았다…

포인트 쳌쳌

그리디스럽게 생각해본다.
최대한 많은 수의 회의가 가능하게 하려면 회의 시간이 적게 걸리는 회의가 많아야 한다.

또한, 회의 시작 시간이 같다면 종료시간이 빠른 것이 선택되어야 한다. 때문에

  1. 회의가 끝나는 시간으로 오름차순, 끝나는 시간이 같다면 시작 시간 기준 오름차순으로 정렬해야 한다.
  2. 회의 시간이라고 해서 그것이 꼭 24시간제라는 편견은 버리자. 입력 조건 확인. (무려 2의 31승이다….)

풀이 코드

import sys
n = int(input())
con = []
for i in range(n):
    a = list(map(int, sys.stdin.readline().split()))
    con.append(a)
con.sort(key = lambda x: (x[1], x[0]))
#print(con)

finish = con[0][1]
cnt = 1
for i in range(1, len(con)):
    if finish <= con[i][0]:
        cnt += 1
        finish = con[i][1]
        #print(con[i][0], con[i][1])
print(cnt)


참고자료

https://suri78.tistory.com/26


채점 결과

image



algorithmbojpython3greedy Share Tweet +1