수 찾기 성공
시간 제한메모리 제한제출정답맞은 사람정답 비율
2 초 | 128 MB | 92368 | 29219 | 19043 | 30.628% |
문제
N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오.
입력
첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다.
출력
M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다.
예제 입력 1 복사
5 4 1 5 2 3 5 1 3 7 9 5
예제 출력 1 복사
1 1 0 0 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | fun main(){ val num1 = readLine()!!.toInt() var arr1 = readLine()!!.split(" ").map{it.toInt()} val num2 = readLine()!!.toInt() val arr2 = readLine()!!.split(" ").map{it.toInt()} arr1 = arr1.sorted().toMutableList() //println(arr1) for(i in 0 until num2){ var find = arr2[i] var ans = binary_search(arr1,find,0,num1-1) println(ans) } } fun binary_search(arr:List<Int>, find: Int, start: Int, end: Int): Int { var end = end var start = start var mid = (start + end) /2 while(start<=end){ mid = (start + end) /2 if(arr[mid]==find){ return 1 } else if(arr[mid]>find){ end = mid-1 } else{ start = mid+1 } } return 0 } | cs |
'알고리즘 공부 > 미분류' 카테고리의 다른 글
백준 1978번 소수 찾기 (0) | 2021.07.13 |
---|---|
백준 나무자르기 2805번 with Kotlin #이진탐색 #이분탐색 (0) | 2021.07.13 |
팰린드롬수 1259번 with Kotlin (0) | 2021.07.10 |
좌표정렬하기 11651번 with Kotlin (0) | 2021.07.10 |
이진탐색 (0) | 2021.07.10 |