문제풀이) 백준 - 1931 / 회의실 배정

velg·2021년 5월 4일
0

문제 링크

문제 요약

1. N개의 회의에 대한 회의실 사용표를 만드는데, 최대한 많은 회의가 진행될 수 있게 만들어라.
2. 단 다음과 같은 조건이 주어진다.
 - 회의는 시작되면 중단될 수 없다.
 - 회의가 끝남과 동시에 시작될 수 있다.
 - 회의는 시작시간과 끝나는 시간이 같을 수 있다. 이 때 시작하자마자 끝나는 걸로 간주한다.

요점

조건을 충족시키며 회의의 최대값을 구하는 방식

코드

# 회의 수
n = int(input())
# 회의 시간 정보
time = sorted((list(map(int,input().split()))for _ in range(n)), 
key=lambda x: [x[1],x[0]])

end = 0
result = 0

for s,e in time:
  if s >= end:
    end = e
    result += 1
    
print(result)

코드 풀이

line 4.  회의 시간 정보를 끝나는 시간, 시작 시간 순서로 정렬함
line 10. 시작시간이 끝나는 시간보다 클 때마다 끝나는 시간 end를 변경해주고 갯수를 1 증가 시킴

피드백

처음엔 입력, 정렬, 반복문 모두 따로 작성하였으나 후에 LC를 통해 한줄로 정리하였다.
LC 사용법을 좀 더 숙지할 수 있도록 하자.

for문에서 item은 s,e와 같이 콤마(,)를 사용 할 수 있었다.
위 코드와 같이 가져와야 할 item이 둘 이상이라면 유용할 것이라 생각되니 기억하자.
profile
초보 개발자

0개의 댓글