얼렁뚱땅 백준 문제풀이

[백준 문제풀이] 얼렁뚱땅 19598 최소 회의실 개수 풀이

MOSTAR 2022. 10. 6. 22:44

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

 

19598번: 최소 회의실 개수

2개 회의실로 3개 회의를 모두 진행할 수 있다. 예를 들어, 첫번째 회의실에서 첫번째 회의를 진행하고 두번째 회의실에서 두번째 회의와 세번째 회의를 진행하면 된다. 1개 회의실로 3개 회의

www.acmicpc.net

 

# pypy에서만 통과

- heapq을 썻지만 안쓰고 sort한거랑 똑같이 사용함ㅎ

- 아직 안익숙해서 그렁가봉가 .... 갱차나.. 언젠간 ... 잘 하겠지 ..

import heapq
import sys

n = int(sys.stdin.readline())
arr = []


for i in range(n) :
    start, end = map(int,sys.stdin.readline().strip().split())
    heapq.heappush(arr,(start,end))

count = 0
start, end = heapq.heappop(arr)

hey = [end]

while arr :
    start, end = heapq.heappop(arr)
    
    for i in range(len(hey)) :
        if hey[i] <= start :
            hey[i] = end
            break
        elif i == len(hey)-1 and hey[i] > start :
            hey.append(end)

print(len(hey))

 

# python 도 가능 !

- 이게 진ㅉ ㅏ.. heapq를 쓴 크흠 .. 다른 코드 참고해땨

- 연습하게씀 댜 .....

import sys
import heapq

n = int(sys.stdin.readline())
meeting = [list(map(int,sys.stdin.readline().strip().split())) for _ in range(n)]
meeting.sort()

arr = []
for i in range(len(meeting )):
    if arr and arr[0] <= meeting[i][0] :
        heapq.heappop(arr)
    heapq.heappush(arr, meeting[i][1])

print(len(arr))