-문제: https://www.acmicpc.net/problem/11000
11000번: 강의실 배정
첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (0 ≤ Si < Ti ≤ 109)
www.acmicpc.net
회의실 배정과 비슷한 문제라고 생각했는데 이거는 하나의 강의실에 넣을 수 있는 최대 회의 개수이지만
이번 문제는 강의 수는 n개이고, 사용하는 강의실 개수를 최소로 하는 거라서 조금 다르다.
-정답풀이(Pypy3으로 해야 시간초과가 발생하지 않는다):
last 배열에 given의 첫번째 값을 넣고, 나머지 given값과 비교한다
강의실을 공유하는 경우는 else문으로 원래 있던 값을 heappop하고, 새로운 값을 heappush해준다(강의실 갯수 유지)
강의실을 공유하지 않는 경우는 if문으로 새로운 값을 heappush를 하면 된다
-틀린 풀이:
뭔가 heapq를 이용해야할 것 같아서 import 해봤는데 아직 쓸 줄을 몰랐다,,,
아 요새 그리디 문제 너무 안풀려서 스트레스 받는다,,,
여기서 조건을 만족하는 걸 given에서 없애는 거라고 생각했는데, 따로 배열을 만들어서(last) 거기다가 heappush를 하는 방식
'백준 > Greedy' 카테고리의 다른 글
[코딩테스트] 백준 2720번: 세탁소 사장 동혁 (0) | 2022.02.03 |
---|---|
[코딩테스트] 백준 2847번: 게임을 만든 동준이 (0) | 2022.02.03 |
[코딩테스트] 백준 1783번: 병든 나이트 (0) | 2022.02.02 |
[코딩테스트] 백준 1543번: 문서검색 (0) | 2022.01.29 |
[코딩테스트] 백준 1449번: 수리공 항승 (0) | 2022.01.29 |