https://www.acmicpc.net/problem/1931
입력 : 회의의 수 N과 회의의 시작시간, 끝나는 시간
출력 : 사용할 수 있는 회의의 최대 개수
직관 및 접근
회의실 사용 표를 만들거임.
각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있음.
회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자.
시작 시간과 끝나는 시간 겹칠 수 있다.
=> 이거 GREEDY에서 배운 그 스케쥴링 문제
=> GREEDY로 풀기 전에, 우선 정렬이 필요함.
공부내용
풀이
1차 풀이(실패)
import sys
input = sys.stdin.readline
N = int(input()) # 11
print(N)
# I_list = [tuple(map(int, input().split())) for _ in range(N)]
# [(1, 4), (3, 5), ..., ]
# [(s1, t1), (s2, t2), ... 꼴]
# print(I_list)
I_dict = {}
for _ in range(N):
temp = list(map(int, input().split()))
I_dict[temp[0]] = temp[1]
# {1: 4, 3: 8, 0: 6, 5: 9, 6: 10, 8: 12, 2: 13, 12: 14}
I_dict = dict(sorted(I_dict.items(), key=lambda item: (item[1], item[0])))
print(I_dict)
2차 풀이
1
'Algorithms and Languages > 파이썬 알고리즘 문제풀이' 카테고리의 다른 글
[Python/DailyAlgo] 71. 이차원 배열의 델타 탐색 1 (0) | 2025.02.18 |
---|---|
[Python/백준] 20920. 영단어 암기는 괴로워 (0) | 2025.02.17 |
[Python/프로그래머스] 42746. 가장 큰 수 (0) | 2025.02.05 |
[Python/DailyAlgo] 70. 이차원 배열의 회전 (0) | 2025.02.05 |
[Python/DailyAlgo] 69. 이차원 배열에서 특정 구간 행순회 (0) | 2025.02.05 |