μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- μκ³ λ¦¬μ¦
- λ°±μ€
- WebApp
- WebView
- λΈλ£¨νΈν¬μ€ μκ³ λ¦¬μ¦
- λΉνΈμ°μ°μ
- dfs
- dp
- λΆν νμ
- BFS
- νλ‘κ·Έλλ¨Έμ€
- μ½λ©ν μ€νΈ
- λμ ν©
- λΈλ£¨νΈν¬μ€
- μ€ν
- SwiftUI
- μμ
- λ°±νΈλνΉ
- λΆν μ 볡
- μ½ν
- μ ν΄λ¦¬λ νΈμ λ²
- Swift
- λ¬Έμμ΄
- ios
- μ΄μ§νμ
- 그리λ μκ³ λ¦¬μ¦
- λΆν μ 볡
- Queue
- Today
- Total
MUKER_DEV with iOS
[swift] λ°±μ€ - 1931λ²: νμμ€ λ°°μ λ³Έλ¬Έ
1931λ²: νμμ€ λ°°μ
(1,4), (5,7), (8,11), (12,14) λ₯Ό μ΄μ©ν μ μλ€.
www.acmicpc.net
λ¬Έμ νΈλ λ° μμ΄ λμμ΄ λλλ‘ λμ νμ΄μ κ°μ λ νμ΄λ₯Ό μ¬λ¦½λλ€.
λν νμ΄ ν λ€λ₯Έ μ¬λμ νμ΄λ₯Ό λ³΄κ³ μ°Έκ³ ν λ§ν νμ΄λ μ¬λ¦½λλ€.
- λ¬Έμ μ λ°λΌ λμ νμ΄λ§ μμ μ μμ΅λλ€.
- ν΄λΉ νμ΄λ€μ νμ΄ μ€ νλμΌ λΏ μ΅μ μ νμ΄λ μλ μ μμ΅λλ€.
λμ νμ΄
let meetingCount = Int(readLine()!)!
var time = (0..<meetingCount).map { _ in readLine()!.split(separator: " ").map { Int($0)! }}.sorted { $0[1] < $1[1] }
var endTime = time[0][1]
var count = 1
while true {
let temp = time.filter { $0[0] >= endTime }
if temp.isEmpty { break }
time = temp
endTime = temp[0][1]
count += 1
}
print(count)
μ£Όμ!! μ€λ΅ νμ΄μ λλ€.
μκ°μ΄κ³Όλ‘ μ€λ΅μ΄ λμ΅λλ€.
μμ¦ νμκ³Ό μκ³ λ¦¬μ¦μ μ’ λ₯λ₯Ό λ 곡λΆνκ³
λ¬Έμ λ₯Ό νμ΄μΌκ² λ€λ μκ°μ΄ λλλ€.
μμ νμμΌλ‘ ν κ²½μ°
λ¬Έμ μμ μ΅μ μ μκ³ λ¦¬μ¦μ μꡬνλ κ²½μ°κ° λ§μ
μκ°μ νμ 걸리λ€μ.
μ΄λ² λ¬Έμ λ
λ€λ₯Έ μ¬λμ νμ΄λ₯Ό 보κ³
μκ° λ³΅μ‘λμ μ΄μ μ λ§μΆ°
곡λΆν΄ λ³΄κ² μ΅λλ€.
κ°μ λ νμ΄
let meetingCount = Int(readLine()!)!
var time = (0..<meetingCount).map { _ in readLine()!.split(separator: " ").map { Int($0)! }}
time.sort { $0[1] < $1[1] || $0[1] == $1[1] && $0[0] < $1[0] }
var endTime = -1
var count = 0
for i in time {
if i[0] >= endTime {
endTime = i[1]
count += 1
}
}
print(count)
// μκ°: μ½ 164ms
μΌλ¨ μκ°μ μ€μ¬ ν΅κ³Όνμ΅λλ€.
κ°μ λΆλΆ 1
time λ³μλ₯Ό λ§λ€ λ
κ³ μ°¨ν¨μλ₯Ό κ³μ μ΄μ΄μ λμ΄νμλλ°μ
var time = (0..<meetingCount).map { _ in readLine()!.split(separator: " ").map { Int($0)! }}.sorted { $0[1] < $1[1] }
time.sort { $0[1] < $1[1] || $0[1] == $1[1] && $0[0]
μ΄λ κ² λ§μ΄μ£
κ·Όλ° μ¬κΈ°μ sortedμ μΌνμ°μ°μλ₯Ό μΈλ €κ³ νλ μλ¬κ° λ°μνμ΅λλ€.
κ·Έλμ λ°λ‘ μ λ ¬ λΆλΆμ 빼쀬μ΅λλ€.
ν΄λΉ κ°μ μ λ¬Έμ μ μκ°λ³΅μ‘λμ μκ΄μ μμμ΅λλ€.
κ°μ λΆλΆ 2
μ¬κΈ°μ μκ°λ³΅μ‘λλ₯Ό ν΄κ²°νλλ°μ.
whileλ¬Έ μμ filterλ₯Ό λ£μΌλ
whileλ°λ³΅μ΄ λ λλ§λ€ timeλ°°μ΄μ μ λΆ μμ νμ νλ κ²
μκ°μ΄κ³Όμ μμΈμ΄μμ΅λλ€.
κ·Έλμ κ°μ λΆλΆ 1μ μ λ ¬ 쑰건μ μΆκ°νλ 건λ°μ.
μ λ ¬λ‘ μνλ μμλ₯Ό λ€ λ§μΆκ³ λλ
λ°°μ΄μ μμ νμμ λ°λ³΅ν μΌμ΄ μμ΄μ‘μ΅λλ€.
μ°Έκ³ ν λ§ν νμ΄
import Foundation
final class FileIO {
@inline(__always) private var buffer: [UInt8] = Array(FileHandle.standardInput.readDataToEndOfFile()) + [0], byteIdx = 0
@inline(__always) private func readByte() -> UInt8 {
defer { byteIdx += 1 }
return buffer.withUnsafeBufferPointer { $0[byteIdx] }
}
@inline(__always) func readInt32() -> Int32 {
var number: Int32 = 0, byte = readByte(), isNegative = false
while byte == 10 || byte == 32 { byte = readByte() }
if byte == 45 { byte = readByte(); isNegative = true }
while 48...57 ~= byte { number = number * 10 + Int32(byte - 48); byte = readByte() }
return number * (isNegative ? -1 : 1)
}
}
let file = FileIO()
let n = Int(file.readInt32())
var times = [(Int32, Int32)]()
for _ in 0..<n {
times.append((file.readInt32(), file.readInt32()))
}
times.sort {
if $0.0 == $1.0 { return $0.1 < $1.1 }
return $0.0 < $1.0
}
var index = 0
var lhs = times.first!
var count = 1
while index < n-1 {
let rhs = times[index+1]
if lhs.1 <= rhs.0 {
lhs = rhs
count += 1
} else if lhs.1 >= rhs.1 {
lhs = rhs
}
index += 1
}
print(count)
// μκ°: 40ms
μκ°μ 40msκΉμ§ μ€μΈ μ½λλ₯Ό κ°μ Έμλ΄€μ΅λλ€.
μ νμ΄ λ»μ ν΄μνκΈ°λ νλ€μ§λ§
λ©λͺ¨λ¦¬λ₯Ό μ κ² μ°¨μ§νλ νμ μΌλ‘ κ°μ ν΄
μκ°μ μ€μΈ κ±° κ°μ΅λλ€.
'π€ μκ³ λ¦¬μ¦ > BAEKJOON' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[swift] λ°±μ€ - 1541λ²: μμ΄λ²λ¦° κ΄νΈ (2) | 2023.01.22 |
---|---|
[swift] λ°±μ€ - 1026λ²: 보물 (0) | 2023.01.22 |
[swift] λ°±μ€ - 11047λ²: λμ 0 (0) | 2023.01.21 |
[swift] λ°±μ€ - 11399λ²: ATM (0) | 2023.01.21 |
[swift] λ°±μ€ - 2828λ²: μ¬κ³Ό λ΄κΈ° κ²μ (0) | 2023.01.21 |