최대 1 분 소요

사용 언어: Python3

문제

스크린샷 2023-04-21 오전 11 40 04

풀이

내 풀이

N = int(input())
lst = [list(map(int, input().split())) for _ in range(N)]

# ✅ 회의가 끝나는 시간 순으로 정렬 (빨리 끝나는 회의를 우선적으로 해야 최대한 많은 회의를 할 수 있음)
lst.sort(key=lambda x:x[1])

cnt = 1 # 맨 처음 회의는 무조건 할 수 있음
end = lst[0][1]
for i in range(1, N):
    if lst[i][0] >= end:
        cnt += 1 
        end = lst[i][1] # 끝나는 시간 업데이트

# 최대 수의 회의
print(cnt)
  • 성공

다른 풀이

N = int(input())
lst = [list(map(int, input().split())) for _ in range(N)]

# 회의가 끝나는 시간 순으로 정렬 (빨리 끝나는 회의를 우선적으로 해야 최대한 많은 회의를 할 수 있음)
lst.sort(key=lambda x:(x[1], x[0])) # ✅ 차순위까지 설정 x[1]이 같으면 x[0] 순으로

cnt = 0 # 진행한 회의 수
end = 0 # 회의 종료시간 기록
for x in lst:
    if x[0] >= end:
        cnt += 1 
        end = x[1] # 끝나는 시간 업데이트

# 최대 수의 회의
print(cnt)
  • 🌟 sort() 할 때, 차순위까지 설정하는 방법 알아두기!


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기