상세 컨텐츠

본문 제목

수 찾기(백준)

코딩테스트

by dofury 2023. 7. 3. 15:51

본문

728x90

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 문법을 통해 순차 탐색을 통해서 찾아보았으나 시간 초과가 발생했다.

그래서 이진 탐색을 통해 구현했더니 시간이 초과되지 않고 잘 탐색이 되었다.

728x90

'코딩테스트' 카테고리의 다른 글

균형잡힌 세상(백준)  (0) 2023.07.05
프린터 큐(백준)  (0) 2023.07.04
체스판 다시 칠하기(백준)  (0) 2023.06.30
ACM 호텔(백준)  (0) 2023.06.29
음계(백준)  (0) 2023.06.29

관련글 더보기

댓글 영역