백준 1931 파이썬 회의실 배정
2024. 5. 25. 06:57ㆍ코딩 도구/백준
반응형
백준 1931 - 회의실 배정
문제
https://www.acmicpc.net/problem/1931
답안 코드 :
N = int(input())
A = [[0] * 2 for _ in range(N)]
for i in range(N):
S, E = map(int, input().split())
A[i][0] = E # 종료시간 우선 정렬이 우선이기 때문에 0번째에 종료시간을 먼저 저장.
A[i][1] = S
A.sort()
count = 0
end = -1
for i in range(N):
if A[i][1] >= end: # 겹치지 않는 다음 회의가 나온 경우
end = A[i][0] # 종료 시간 업데이트
count += 1
print(count)
생각 :
# 문제 분석
# 최대한 많은 회의 배정하기
# 그리디 활용
# 회의의 종료시간이 빠를수록 다음 회의 넣기에 유리하다
# 따라서 종료 시간이 빠른 순서대로 정렬해서 겹치지 않게 적절하게 선택해서 해결
# 문제 풀이
# 회의 시간 데이터를 저장하고 종료시간이 빠른 순서대로 정렬
# 종료시간 같으면 회의 시작 시간 기준으로 정렬
# 순차적 탐색하다가 겹치지 않는 회의나오면 하나씩 선택
그리디 알고리즘 정리 블로그
반응형
'코딩 도구 > 백준' 카테고리의 다른 글
백준 1929 파이썬 에라토스테네스 체 (0) | 2024.05.27 |
---|---|
백준 1541 파이썬 그리디 생각해내기 (22) | 2024.05.26 |
백준 1744 파이썬 음수의 집합 고려 (0) | 2024.05.24 |
백준 1715 파이썬 우선순위 큐 (1) | 2024.05.23 |
백준 11047 파이썬 전형적인 그리디 알고리즘 (0) | 2024.05.22 |