package com.example.algorithm
import java.util.Collections
fun main(){
val nSize = readLine()!!.toInt()
var n = readLine()!!.split(' ').map{ it.toInt()}
val mSize = readLine()!!.toInt()
val m = readLine()!!.split(' ').map{ it.toInt()}
var isSearch = false
n = n.sorted() //n을 정렬
for(f in m){
var low = 0
var high = nSize-1
var mid: Int
while (low <= high){
mid = (low+high)/2
if(n[mid] > f){
high = mid-1
}else if(n[mid] == f){
println(1)
isSearch = true
break
}else{
low = mid+1
}
}
if(isSearch){
isSearch = false
}else{
println(0)
}
}
}
단순하게 if in 문법을 통해 순차 탐색을 통해서 찾아보았으나 시간 초과가 발생했다.
그래서 이진 탐색을 통해 구현했더니 시간이 초과되지 않고 잘 탐색이 되었다.
균형잡힌 세상(백준) (0) | 2023.07.05 |
---|---|
프린터 큐(백준) (0) | 2023.07.04 |
체스판 다시 칠하기(백준) (0) | 2023.06.30 |
ACM 호텔(백준) (0) | 2023.06.29 |
음계(백준) (0) | 2023.06.29 |
댓글 영역