[BaekJoon] 15552 빠른 A+B
2024. 8. 11. 18:40
import Foundation
final class FileIO {
private var buffer:[UInt8]
private var index: Int
init(fileHandle: FileHandle = FileHandle.standardInput) {
buffer = Array(fileHandle.readDataToEndOfFile())+[UInt8(0)] // 인덱스 범위 넘어가는 것 방지
index = 0
}
@inline(__always) private func read() -> UInt8 {
defer { index += 1 }
return buffer.withUnsafeBufferPointer { $0[index] }
}
@inline(__always) func readInt() -> Int {
var sum = 0
var now = read()
var isPositive = true
while now == 10
|| now == 32 { now = read() } // 공백과 줄바꿈 무시
if now == 45{ isPositive.toggle(); now = read() } // 음수 처리
while now >= 48, now <= 57 {
sum = sum * 10 + Int(now-48)
now = read()
}
return sum * (isPositive ? 1:-1)
}
@inline(__always) func readString() -> String {
var str = ""
var now = read()
while now == 10
|| now == 32 { now = read() } // 공백과 줄바꿈 무시
while now != 10
&& now != 32 && now != 0 {
str += String(bytes: [now], encoding: .ascii)!
now = read()
}
return str
}
}
var answer = ""
func solution() {
let a = file.readInt(), b = file.readInt()
answer += "\(a + b)\n"
}
let file = FileIO()
let n = file.readInt()
for _ in 0..<n {
solution()
}
print(answer)
728x90
'Test > Coding Tests' 카테고리의 다른 글
[Programmers] 원소들의 곱과 합 (0) | 2024.08.11 |
---|---|
[Programmers] 이어 붙인 수 (0) | 2024.08.11 |
[Programmers] 등차수열의 특정한 항만 더하기 (0) | 2024.08.11 |
[Programmers] 연속된 수의 합 (2) | 2023.11.30 |
[Programmers] 이진수 더하기 (0) | 2023.11.28 |