MUKER_DEV with iOS

[swift] ๋ฐฑ์ค€ - 10815๋ฒˆ: ์ˆซ์ž ์นด๋“œ ๋ณธ๋ฌธ

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

[swift] ๋ฐฑ์ค€ - 10815๋ฒˆ: ์ˆซ์ž ์นด๋“œ

MUKER 2023. 5. 31. 16:31
 

10815๋ฒˆ: ์ˆซ์ž ์นด๋“œ

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

www.acmicpc.net


์„ฑ๊ณต ํ’€์ด

// Set์„ ์ด์šฉํ•œ ํ’€์ด
let N = Int(readLine()!)!
let card = Set(readLine()!.split(separator: " ").map { Int($0)! })
let M = Int(readLine()!)!
let verify = readLine()!.split(separator: " ").map { Int($0)! }

for i in verify {
    print(card.contains(i) ? "1" : "0", terminator: " ")
}
// ์ด์ง„ํƒ์ƒ‰์„ ์ด์šฉํ•œ ํ’€์ด
let N = Int(readLine()!)!
let card = readLine()!.split(separator: " ").map { Int($0)! }.sorted()
let M = Int(readLine()!)!
let verify = readLine()!.split(separator: " ").map { Int($0)! }

for i in 0..<verify.count {
    let num = verify[i]
    var left = 0
    var right = card.count-1
    var result = 0
    while left <= right {
        let middle = (left+right)/2
        if card[middle] > num {
            right = middle-1
        } else if card[middle] < num {
            left = middle+1
        } else {
            result = 1
            break
        }
    }
    print("\(result)", terminator: " ")
}