반응형
안녕하세요. 개발 중인 정주입니다.
오늘은 "백준 BOJ - 1931 회의실 배정" 문제를 풀었습니다.
목차
Github
문제 링크
풀이
이번 문제는 그리디 알고리즘 문제입니다.
이 문제에서의 핵심은 회의가 끝나는 시간입니다.
회의가 일찍 시작하더라도 늦게 끝난다면 뒤에 배치해야 합니다.
즉, 정렬의 기준을 끝나는 시간으로 정렬해야 합니다.
위 기준대로 정렬을 하고 회의의 개수를 세면 답을 구할 수 있습니다.
전체 코드
import Foundation
let count = Int(readLine()!)!
var times: [(Int, Int)] = []
for _ in 0..<count {
let input = readLine()!.split(separator: " ").map { Int(String($0))! }
times.append((input[0], input[1]))
}
times.sort { $0.1 == $1.1 ? $0.0 < $1.0 : $0.1 < $1.1 }
var result = 0
var endTime = -1
for time in times {
if endTime <= time.0 {
result += 1
endTime = time.1
}
}
print(result)
아직은 초보 개발자입니다.
더 효율적인 코드 훈수 환영합니다!
공감과 댓글 부탁드립니다.
반응형