-
[Python] 백준(BOJ): 1931 회의실 배정알고리즘/백준 2021. 10. 24. 23:27
문제
1931번: 회의실 배정
(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.
www.acmicpc.net
풀이
a. 오답 및 시간 초과
import sys n = int(input()) data = [] for i in range(n): data.append([j for j in map(int, sys.stdin.readline().split())]) # 회의 시간이 짧은 순으로 정렬했음 -> 이러면 회의를 최대 갯수만큼 할 수 있을 거라고 생각했는데 # 반례 n=3, data = [[3,5],[1,4],[4,8]] data.sort(key=lambda x: x[1] - x[0]) # 회의실 사용 여부 _usage = [0 for i in range(max(x[1] for x in data) + 1)] answer = 0 time = 0 for x in data: if 1 not in _usage[x[0]:x[1]]: answer += 1 for i in range(x[0], x[1]): _usage[i] = 1 if x[0] == x[1]: _usage[x[0]] = 1 print(answer)
b. 풀이
import sys n = int(input()) data = [] for i in range(n): data.append([j for j in map(int, sys.stdin.readline().split())]) data.sort(key=lambda x: (x[1], x[0])) answer = 0 time = 0 for x in data: if time <= x[0]: time = x[1] answer += 1 print(answer)
'알고리즘 > 백준' 카테고리의 다른 글
[Python] 백준(BOJ): 2293 동전1 (0) 2021.12.09 [Python] 프로그래머스: 도둑질 (0) 2021.12.09 [Python] 백준(BOJ): 1946 신입사원 (0) 2021.10.24 [Python] 백준(BOJ): 12845 모두의 마블 (0) 2021.10.24 [Python] 백준(BOJ): 1541 잃어버린 괄호 (0) 2021.10.24