[λ°±μ€] (Swift) 1931λ² - νμμ€ λ°°μ (μ€λ²1) (feat. 그리λ, νμλ²)
π λ¬Έμ λ§ν¬
https://www.acmicpc.net/problem/1931
1931λ²: νμμ€ λ°°μ
(1,4), (5,7), (8,11), (12,14) λ₯Ό μ΄μ©ν μ μλ€.
www.acmicpc.net
π λμ νμ΄
μμ΄ν¨λλ‘ κ·Έλ¦Όμ 그리면μ μκ°ν΄λ³΄λ, μ£Όμ΄μ§ μ λ ₯κ°μ μ μ λ ¬νλ€λ©΄, μμλλ‘ λν΄κ°λ©΄μ μ λ΅μ μ°Ύμ μ μμ κ² κ°μλ€.
μ°μ λ§μ νμλ₯Ό νκΈ° μν΄μλ, λμΌν μκ°μ μμνλ νμλ μ΅λν 빨리λλμΌνλ€. μ΄μ λ 빨리 λλ μλ‘ λ€μμ κ³ λ €ν΄λ³Ό νμκ° λ§κΈ° λλ¬Έμ΄λ€.
κ·Έλμ μμμκ°μ μμλ‘ λ¨Όμ μ λ ¬ν΄μ€λ€, μ’ λ£μκ°μ κΈ°μ€μΌλ‘ λ€μ ν λ² μ λ ¬μμΌμ£Όμ΄μΌ νλ€.
μ λ ¬λ νμ prevEndTimeμ΄λΌλ λ³μμ λλλ μκ°μ λ£μ΄μ£Όκ³ , κ° νμλ§λ€ start μκ°μ λΉκ΅ν΄μ€λ€. μμμκ°μ΄ prevEndTimeλ³΄λ€ ν¬κ±°λ κ°μΌλ©΄ cnt λ₯Ό 1 μ¦κ°μμΌμ£Όκ³ , prevEndTimeμ λ°κΏμ€λ€.
π μ λ΅ μ½λ
GitHub - deslog/Algorithm
Contribute to deslog/Algorithm development by creating an account on GitHub.
github.com
import Foundation
// input
let n = Int(readLine()!)!
var meeting = [[Int]]()
for _ in 0..<n {
let temp = readLine()!.split(separator: " ").map { Int(String($0))! }
meeting.append(temp)
}
// main
func solution(_ meeting: [[Int]]) -> Int {
// meeting μ€λ¦μ°¨μμΌλ‘ μ λ ¬
var sortedMeetings = meeting
sortedMeetings.sort{ return $0[0] < $1[0] }
sortedMeetings.sort{ return $0[1] < $1[1] }
var cnt = 0
var prevEndTime = 0
for meeting in sortedMeetings {
let start = meeting[0]
let end = meeting[1]
if start >= prevEndTime {
cnt += 1
prevEndTime = end
}
}
return cnt
}
print(solution(meeting))