[백준 1931] 회의실 배정

초록귤·2021년 12월 5일
0
post-thumbnail

문제1931

코드

t = int(input())
result=[]
for _ in range(t):
    s,e = map(int,input().split(" "))
    result.append([s,e])
s= sorted(result, key=lambda s:s[0])
print('시작시간 오름차순',s)
s= sorted(result, key=lambda s:s[1])
print('시작+끝 시간 오름차순',s)
last =0
cnt=0
# last의 값과 i값을 비교해서 i값이 크다면 개수 추가해준다.
# last= j값으로 갱신해준다.
for i,j in s:
    if i>=last:
        cnt+=1
        last=j
print(cnt)

입력

11
1 4
3 5
0 6
5 7
3 8
5 9
6 10
8 11
8 12
2 13
12 14

출력

시작시간 오름차순
[[0, 6], [1, 4], [2, 13], [3, 5], [3, 8], [5, 7], [5, 9], [6, 10], [8, 11], [8, 12], [12, 14]]

시작+끝 시간 오름차순
[[1, 4], [3, 5], [0, 6], [5, 7], [3, 8], [5, 9], [6, 10], [8, 11], [8, 12], [2, 13], [12, 14]]
결과 :4

풀이

회의실 배정에서 시작시간을 오름차순으로, 끝나는 시간을 오름차순으로 하면 시작시간이 끝나는 시간보다 크다면, 회의실 배정 가능하다. count +=1 해줌
last=j로 저장하고 다음으로 넘어감.


아이템 첫 번째 인자를 기준으로 오름차순으로 먼저 정렬하고,
두 번째 인자를 기준으로 오름차순 정렬.

만약 내림차순으로 정렬하게 하려면?
-x[0] 으로 부호 붙이기

lambda 매개변수 : 매개변수를 이용한 리턴값

lambda라는 키워드를 입력하고 뒤에는 매개변수(인자)를 입력하고 콜론(:)을 넣은 다음에 그 매개변수(인자)를 이용한 동작 적기
ex) lambda x: x*2

lambda + map함수 (자주 사용)

map(function, iterable)
map(적용시킬 함수, 적용할 값들)로 이해
적용한 값들: 반복가능한 자료형(리스트, 튜플 등)

profile
초록색 귤이 노랑색으로 익어가듯, 실력이 익어가기 위해 노력하는 개발자 lahee입니다. 프론트엔드 개발자를 목표로 성장하고 있습니다.

0개의 댓글