본문 바로가기
Algorithm/BOJ

[Algorithm/BOJ] 1931 - 회의실 배정 (Greedy) Swift

by thoonk: 2020. 12. 17.
반응형

문제 풀이:
1. 시작하는 시간을 기준으로 오름차순 정렬

2. 끝나는 시간을 기준으로 오름차순 정렬

3. 끝나는 시간과 다음 시작 시간과 비교해서 작다면 카운트 증가 

4. 회의 배열 끝까지 위 3번 반복

 

코드:

import Foundation

let n = Int(readLine()!)!

var session = [(Int,Int)]()

for _ in 0 ..< n {
    let s = readLine()!.split(separator: " ").map {Int(String($0))!}
    session.append((s[0],s[1]))
}

session.sort (by: { $0.0 < $1.0 })
session.sort(by: { $0.1 < $1.1 })

var temp = 0
var result = 0

for s in session {
    if s.0 >= temp {
        temp = s.1
        result += 1
    }
}
print(result)

문제:

www.acmicpc.net/problem/1931

 

1931번: 회의실 배정

(1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다.

www.acmicpc.net

 

반응형

댓글