1931 : 회의실 배정

서희찬·2022년 1월 4일
0

백준

목록 보기
87/105

문제

코드

1 : sort

# #1931 : 회의실 
import sys 
input = sys.stdin.readline

n=int(input())
time=[]
for _ in range(n):
    startTime,endTime=map(int,input().split())
    time.append([startTime,endTime])

time.sort(key=lambda x:x[0])
time.sort(key=lambda x:x[1])

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

2 : sorted

import sys 
input = sys.stdin.readline

n=int(input())
time=[]
for _ in range(n):
    startTime,endTime=map(int,input().split())
    time.append([startTime,endTime])

time=sorted(time,key=lambda x:x[0])
time=sorted(time,key=lambda x:x[1])

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

풀이

참 오랜시간 고민한 문제이다
그리디알고리즘 문제로 회의시간을 입력받아서 최대로 회의를 많이 진행할수있는 수를 찾는것인데
리스트를 입력받는것까진 생각했지만
0,1번째 각각의 요소를 정렬하는 것을 생각하지 못했다.
거기에 그리디로 마지막으로 끝난 회의시간을 매번 초기화 해주면서 반복문을 진행하며 cnt를 올려가는게 인상적이였다.

sorted vs sort

sorted는 원본값을 수정하지 않고 sort는 원본값을 수정하고 둘이 쓰는 방식도 달라서 둘다 돌려봤는데 sort가 더 적은 시간이 나왔다 이유는 모르겠다랑..

profile
Carnegie Mellon University Robotics Institute | Research Associate | Developing For Our Lives, 세상에 기여하는 삶을 살고자 개발하고 있습니다

0개의 댓글

관련 채용 정보