문제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안에 존재하는지 알아내면 된다. [출력]M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다. 문제 분석주어진 수들의 존재여부를 찾아야하므로, 탐색 알고리즘을 선택해야한다.자연수의 범위가 100,000이므로 N^2 의 시간복잡도를 가지는 탐색알고리즘을 사용하면 안된다.고로, 이진탐색을 사용하여 (O..
이진탐색이란?원하는 데이터를 빠르게 찾기 위한 알고리즘이진 탐색은 데이터가 정렬되어있는 상태에서 중앙값을 이용해서 찾고자 하는 값과 비교해가며 찾는 알고리즘(코딩테스트에서 부분 문제로 많이 출제 됨)기능특징시간복잡도Target 데이터 탐색중앙값 비교를 통한 대상 축소 방식O(logN) 이진탐색 핵심이론pre) 오름차순으로 정렬현재 데이터 셋에서 중앙값을 설정한다중앙값 > Target 값 일때, 중앙값 기준으로 왼쪽 데이터 셋 설정중앙값 1~3을 반복하다가, 중앙값 == Target 일때 탐색 종료 EX) 48을 찾아라20303340 454850xxxx454850xxxxx48 (탐색 종료)50 이진탐색 구현import java.util.Arrays;public class App { public sta..
- Total
- Today
- Yesterday
- JDBC
- 알고리즘
- 이진탐색
- 검증
- HTML5
- 버블정렬
- SQL
- 포트폴리오
- db
- 코딩테스트
- Java
- 오블완
- Spring
- 정렬
- 예외처리
- 게시판
- bean
- 우선순위 큐
- BFS
- 티스토리챌린지
- 백준
- DFS
- stack
- 게시판 프로젝트
- 클래스
- 타입변환
- JSON
- Thymeleaf
- 기술면접
- 깊이우선탐색
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |