1920๋ฒ: ์ ์ฐพ๊ธฐ
์ฒซ์งธ ์ค์ ์์ฐ์ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ N๊ฐ์ ์ ์ A[1], A[2], …, A[N]์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ M(1 ≤ M ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ M๊ฐ์ ์๋ค์ด ์ฃผ์ด์ง๋๋ฐ, ์ด ์๋ค
www.acmicpc.net
๋ฌธ์
์์ค ์ฝ๋
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] arr = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
int M = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
for (int i = 0; i < M; i++){
if (binarySearch(arr, Integer.parseInt(st.nextToken())) >= 0) {
sb.append(1).append('\n');
}
else sb.append(0).append('\n');
}
System.out.println(sb);
}
static int binarySearch(int[] arr, int key) {
int lo = 0;
int hi = arr.length - 1;
while (lo <= hi) {
int mid = (lo + hi) / 2;
if (key < arr[mid]) {
hi = mid - 1;
}
else if (key > arr[mid]) {
lo = mid + 1;
}
else return mid;
}
return -1;
}
}
์ฐธ๊ณ
[๋ฐฑ์ค] 1920๋ฒ : ์ ์ฐพ๊ธฐ - JAVA [์๋ฐ]
https://www.acmicpc.net/problem/1920 1920๋ฒ: ์ ์ฐพ๊ธฐ ์ฒซ์งธ ์ค์ ์์ฐ์ N(1 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ N๊ฐ์ ์ ์ A[1], A[2], …, A[N]์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ M(1 ≤ M ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์
st-lab.tistory.com
'๐ Algorithm > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1032๋ฒ : ๋ช ๋ น ํ๋กฌํํธ (0) | 2023.01.02 |
---|---|
[๋ฐฑ์ค] 2748๋ฒ : ํผ๋ณด๋์น ์ 2 (0) | 2023.01.01 |
[๋ฐฑ์ค] 13458๋ฒ : ์ํ ๊ฐ๋ (0) | 2022.12.31 |
[๋ฐฑ์ค] 2508๋ฒ : ์ฌํ ๋ฐ์ฌ ๊ณ ์ฐฝ์ (0) | 2022.12.28 |
[๋ฐฑ์ค] 1453๋ฒ : ํผ์๋ฐฉ ์๋ฐ (0) | 2022.12.27 |