https://www.acmicpc.net/problem/1931
난이도: 실버2
소요시간: 답을 보았기에 재풀이 필요
입력값으로 (회의시작,끝나는시간) 들을 받는다.
이때 회의시작시간기준으로 정렬을 했더니 풀이가 쉽지 않았다.
끝나는시간을 기준으로 정렬을 하면 쉽게 풀이가 가능하다. 이때 끝나는시간이 같을경우에는 시작이 빠른 회의를 앞쪽으로 보내야 한다.
그래야지 시작시간=끝나는 시간 인 회의도 카운트가 가능하다.
먼저 시작시작 오름차순정렬 -> 끝나는시간 오름차순으로 두번 정렬하여도 되지만 나는 한번에 하는방법을 선택했다.
아래 처럼 하면 x[1]기준으로 오름차순 정렬하고 같을경우 x[0] 기준으로 정렬해준다. 앞에 -를 붙여 -x[0] 이런식으로 정렬하면 내림차순이 된다.
inputMeetingList.sort(key= lambda x:(x[1],x[0]))
import sys
N = int(sys.stdin.readline())
inputMeetingList=[]
temp=[]
meetingList=[]
for i in range(N):
inputMeetingList.append(list(map(int,sys.stdin.readline().split())))
inputMeetingList.sort(key= lambda x:(x[1],x[0]))
end = 0
count = 0
for meet in inputMeetingList:
if meet[0] >= end:
count += 1
end = meet[1]
print(count)
'Problem Solving > 정렬' 카테고리의 다른 글
광물 캐기 (1) | 2023.10.16 |
---|---|
BOJ1946 신입 사원 (0) | 2023.04.06 |
두 배열의 원소 교체 (0) | 2023.01.04 |
성적이 낮은 순서로 학생 출력하기 (0) | 2023.01.04 |
위에서 아래로 (0) | 2023.01.04 |