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
부족한 실력을 엉덩이 힘으로 채워나가는 개발자 서희찬입니다 :)

0개의 댓글