본문 바로가기
코딩테스트/문제풀이-2

[필수] 1931 회의실 배정 [정렬][그리디]

by apple망고 2024. 1. 30.

정답 코드

let N = Int(readLine()!)!
var meetings = [(Int, Int)]()

for _ in 0..<N {
    let input = readLine()!.split(separator: " ").map { Int($0)! }
    meetings.append((input[0], input[1]))
}

meetings.sort { $0.0 < $1.0 }
meetings.sort { $0.1 < $1.1 }

var ans = 0
var standard = -1

for meeting in meetings {
    if meeting.0 >= standard {
        ans += 1
        standard = meeting.1
    }
}

print(ans)

 

코드  설명

  • meetings을
    • 시작 시간을 기준으로 정렬을 합니다.
    • 회의 종료 시간을 기준으로 정렬을 합니다.
  • 회의 시작 시간이 standard보다 클 경우 회의 수를 1 증가하고 standard를 해당 회의의 종료 시간으로 변경합니다.