본문 바로가기

개발/Algorithm

BAEKJOON Algorithm_1931번

데하! 안녕하세요 DevStone입니다!

그리디 문제 네 번째 회의실 배정 문제입니다.

 

저 또한 공부하면서 포스팅하는 거라 제 알고리즘이 최적이거나

정답은 아닙니다! 단순히 참고 용도로 부탁드립니다.

 


문제

풀이

문제 처음에 읽고 많이 당황했습니다ㅋㅋ.. 어떻게 접근해야 할지 막막해서 한참 고민하다

일찍 끝나는 회의를 최대한 앞으로 몰면 가장 많은 회의를 할 수 있지 않을까 생각하여

해당 방법으로 작성했습니다.

 

우선 2차원 배열을 선언해 주었습니다.

 

for문을 통해 시작시간, 종료시간을 입력받습니다.

그 후 sort 함수와 람다식을 활용하여 종료시간을 오름차순으로 정렬해줍니다.

 

그 뒤 가장 첫 번째 종료시간을 end_time으로 지정해줍니다. (이 과정이 있기 때문에 meeting_cnt를 1로 선언)

for문을 돌려 시작시간이 end_time 보다 큰 값을 찾고 meeting_cnt를 1 더해주며

해당 회의의 종료시간을 end_time으로 다시 지정 해줍니다.

 

이 과정을 반복하면

meeting_cnt 를 얻을 수 있습니다.

 

문제 링크

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

 

1931번: 회의실 배정

(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.

www.acmicpc.net

 

해당 소스는 git에서 확인하실 수 있습니다.

https://github.com/Maker-Kim/Study/blob/master/Algorithm/Baekjoon_1931.py

 

GitHub - Maker-Kim/Study

Contribute to Maker-Kim/Study development by creating an account on GitHub.

github.com

 

'개발 > Algorithm' 카테고리의 다른 글

BAEKJOON Algorithm_5585번  (0) 2021.07.30
BAEKJOON Algorithm_1541번  (0) 2021.07.29
BAEKJOON Algorithm_11047번  (0) 2021.07.28
BAEKJOON Algorithm_11399번  (0) 2021.07.23
BAEKJOON Algorithm_2839번  (0) 2021.07.22