728x90
반응형
📜 문제 내용
🤔 과정
- 간단한 이분 탐색 연습 문제
카드 입력 받기 -> 카드 오름차순 정렬 -> 정렬된 배열 안에서 이분 탐색 진행
✨ 최초 제출 답안
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] ars) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
int[] cards = new int[n];
st = new StringTokenizer(br.readLine());
for(int i=0;i<n;i++){
cards[i] = Integer.parseInt(st.nextToken());
} // 상근 숫자 카드 입력 끝
// 정렬 후 이분 탐색 시작
Arrays.sort(cards);
int m = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
for(int i=0;i<m;i++){
int start = 0;
int end = n - 1;
int target = Integer.parseInt(st.nextToken());
while(start <= end){
int mid = (start + end) / 2;
// 찾는 숫자가 나오면 1 입력
if(cards[mid] == target){
sb.append(1 + " ");
break;
}
if(cards[mid] > target){
end = mid - 1;
}else{
start = mid + 1;
}
// 없는 숫자라서 start가 end 인덱스를
// 넘어서면 0 입력
if(start > end){
sb.append(0 + " ");
break;
}
}
}
System.out.print(sb.toString());
}
}
🔗 문제 링크
728x90
반응형