10815번: 숫자 카드
첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10,
www.acmicpc.net
이진 탐색을 이용한 문제였다.
이진 탐색을 말로만 들었지 써본 건 처음이라 살짝 헷갈렸따!
신기해서 올려봤다.
import java.util.*;
import java.io.*;
public class Main {
static int [] card;
public static void main(String [] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
card = new int[n];
StringTokenizer st1 = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
card[i] = Integer.parseInt(st1.nextToken());
}
Arrays.sort(card);
int m = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < m; i++) {
int p = Integer.parseInt(st.nextToken());
int start = 0;
int fin = n - 1;
int mid;
int ans = 0;
while (start <= fin) {
mid = (start + fin) / 2;
if (card[mid] == p) {
ans = 1;
break;
}
if (card[mid] > p) {
fin = mid - 1;
} else {
start = mid + 1;
}
}
System.out.print(ans + " ");
}
}
}
앞으로 자바를 중점적으로 쓸 예정이다.
파이썬을 배우려고 파슬리라고 이름을 지었는데 자스민으로 지을 걸 그랬다. ㅋㅋㅋ
자바
스리슬쩍
민들어보기(?)
'BOJ' 카테고리의 다른 글
[BOJ] [JAVA] 4134번 다음 소수 (0) | 2024.01.07 |
---|---|
[BOJ] [JAVA] 13241번 최소공배수 (0) | 2024.01.06 |
[BOJ] [JAVA] 10816번 숫자 카드 2 (0) | 2024.01.06 |
[BOJ] [JAVA] 7785번 회사에 있는 사람 (0) | 2024.01.06 |
[BOJ] [JAVA] 18870번 좌표 압축 (2) | 2024.01.06 |
[Programmers][Python] 소수 찾기 (0) | 2023.12.29 |
[BOJ] [JAVA] 11650번 좌표 정렬하기 (0) | 2023.12.28 |
[BOJ] [JAVA] 1038번 감소하는 수 (0) | 2023.12.20 |