쥐수의 공부노트
백준 1920번 수 찾기 본문
728x90
정답 :
let n = Int(readLine()!)!
let array = readLine()!.split(separator: " ").map{Int($0)!}.sorted()
let m = Int(readLine()!)!
let array2 = readLine()!.split(separator: " ").map{Int($0)!}
func binary(tar : Int) -> Int {
var st = 0
var ed = n-1
while(st <= ed) {
var mid = (st+ed)/2
if array[mid] < tar {
st = mid + 1
}
else if array[mid] > tar {
ed = mid - 1
}
else {
return 1
}
}
return 0
}
for i in 0..<m{
var check = binary(tar: array2[i])
print(check)
}
비교할 array는 sorted를 통해 정렬을 하고, st와 ed를 통해 tar의 숫자와 정렬된 array와 비교하여 st와 ed의 위치를 변경하면 된다!
728x90
'바킹독 알고리즘 > 이분 탐색' 카테고리의 다른 글
백준 1654번 랜선 자르기 (0) | 2023.08.16 |
---|