개미의 개열시미 프로그래밍

[알고리즘] 백준1931 회의실 배정 - 파이썬 본문

알고리즘/그리디 & 구현

[알고리즘] 백준1931 회의실 배정 - 파이썬

YunHyeok 2021. 8. 17. 17:28
728x90
반응형

백준 단계별 풀기 그리디 파트의 두 번째 문제 '회의실 배정'을 풀어봤지만... 처음에 엉뚱하게 생각해서 시간만 버리고 다른 분의 블로그를 참조해서 풀었습니다ㅜ

 

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

 

1931번: 회의실 배정

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

www.acmicpc.net

 

 

[풀이 코드]

from sys import stdin

n = int(input())
s_list = []
for i in range(n):
    first, second = map(int, stdin.readline().split())
    s_list.append([first, second])

# 빨리 끝날수 록 뒤에 고려해볼 회의가 많아서 빨리 끝나는 회의 순서대로 정렬 해야함!
s_list = sorted(s_list, key=lambda a: a[0]) # 시작 시간 먼저 정렬
s_list = sorted(s_list, key=lambda a: a[1]) # 끝나는 시간 정렬

last = 0
cnt = 0
for i, j in s_list:
    if i >= last:
        cnt += 1
        last = j
print(cnt)

 

다른분의 블로그를 참조했습니다!

https://pacific-ocean.tistory.com/236

 

[백준] 1931번(python 파이썬)

문제 링크: https://www.acmicpc.net/problem/1931 1931번: 회의실배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net n = int(input()) s = [] for i in range(n): first, second = map(int..

pacific-ocean.tistory.com

 

[코드 해설]

 

- 빨리 끝날수 록 뒤에서 고려해볼 회의가 많기에 빨리 끝나는 회의 순서대로 정렬해야 합니다.

 

- 먼저 입력받은 회의시간들을 빨리 끝나는 시간으로 정렬해야 합니다. 그러기 위해서 시작시간 먼저 정렬하고 끝나는 시간을 정렬해야합니다.

 

 

728x90
반응형
Comments