MUKER_DEV with iOS

[swift] ๋ฐฑ์ค€ 10989๋ฒˆ: ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 3 ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/BAEKJOON

[swift] ๋ฐฑ์ค€ 10989๋ฒˆ: ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 3

MUKER 2022. 9. 20. 09:15
 

10989๋ฒˆ: ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ 3

์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 10,000,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜๋Š” 10,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

www.acmicpc.net


๋‚˜์˜ ํ’€์ด

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
    }
}

let file = FileIO()

let N = file.readInt()
var arr = [Int](repeating: 0, count: 10001)


for _ in 0...N {
    let n = file.readInt()
    arr[n] += 1
}

var answer = ""
for i in 1...10000 {
    answer += String(repeating:"\(i)\n",count:arr[i])
}
print(answer)
263604kb 1244ms 1552b

- ํ•ด๋‹น๋ฌธ์ œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ’€์—ˆ์„ ๊ฒฝ์šฐ ์‹œ๊ฐ„์ดˆ๊ณผ๊ฐ€ ๋œฌ๋‹ค. (์Šค์œ„ํ”„ํŠธ๋Š” ์ž…์ถœ๋ ฅ์ด ๋Š๋ฆฐํŽธ์ด๊ธฐ ๋•Œ๋ฌธ์—, ์ด ๊ฒฝ์šฐ ์ž…์ถœ๋ ฅ์„ ์ตœ์ ํ™” ์‹œํ‚จ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์ง์ ‘ ๋งŒ๋“ค์–ด์„œ ์จ์ค˜์•ผํ•œ๋‹ค.)

- ํ•ด๋‹น ํ’€์ด๋Š” ์„œ์นญํ•ด์„œ ์ฐพ์•˜์œผ๋ฉฐ ์™„๋ฒฝํžˆ ์ดํ•ดํ•˜๊ณ  ์“ฐ์ง€๋Š” ์•Š์•˜๋‹ค..ใ