이분 탐색 & Upper Bound, Lower Bound 개념 정리
1. Binary-Search란 무엇인가요?정렬된 배열 혹은 List 에서 탐색 구간을 절반씩 줄여가며 특정 값을 찾는 탐색법이다. 다음과 같이 진행 된다.(0) 기본적인 용어는 다음과 같다.target: 찾고자 하는 값, start : 왼쪽 포인터,(index=0에서 시작), end: 오른쪽 포인터(배열 끝에서 시작), mid: 두 값의 중간에 위치한 값(1) mid를 구하고 target 값과 대소관계를 비교한다.(2) mid > target 이면, mid 값이 target값으로 향하도록, end = mid-1 로 탐색 영역을 절반 줄인다.(3) mid target 이면, start = mid +1 이 되도록 하여, 탐색 영역을 절반 줄인다.(4) mid == target 이면 값을 구했으므로, 이분 ..
더보기
[자료구조] 배열, List, Map, Stack, Queue, Priority Queue
1. Array(1) 정의번호와 번호에 대응되는 값들로 이루어진 자료구조를 의미한다.번호만 알고 있으면, 해당 번호에 해당하는 값을 O(1)에 조회가 가능하다.(2) 특징ⓐ Index에 해당하는 값에 바로 접근할 수 있다. (값 조회에 빠르다.)ⓑ 배열은 선언할 때, 그 크기가 정해진다. 그 이후, 줄이거나, 늘릴 수 없다.ⓒ 따라서 중간에 값을 삽입하거나 삭제하기가 어렵다.만약에 그러한 구현이 꼭 필요하다면, 빈 배열을 통해 변경사항이 반영된 배열을 새로 만들어야 한다.(3) 많이 쓰 함수ⓐ Arrays.asList(T..a): 배열을 ArrayList로 변환시켜준다.ⓑ Arrays.toString(): 배열을 문자열 형태로 변경해준다. 문자열 형태: [a,b,c,d...] → 출력할 때 많이 씀ⓒ A..
더보기
[JAVA]열거형
1.열거형 클래스 (enum class) 정의 요일: 월, 화, 수, 목, 금, 토, 일 달력: JAN, FEB, MAR, APR, MAY, JUNE .... 과 같이 서로 관련 있는 상수들을 모아놓고, 해당 상수들에 대해 정의한 클래스 *상수란? 열거형 클래스 안의 핵심이 되는 값을 이야기 하는 것이지, 꼭 숫자일 필요 없다. 정수, 실수, 문자열 모두 가능하다. 위의 예를 해당 정의에 따라 나누어보면, 클래스 이름: 요일 / 상수: 월, 화, 수, 목, 금, 토, 일 클래스 이름: 달력/ 상수: JAN, FEB, MAR, APR, MAY, JUNE .... 이다. 2. 문법적 특징 1. 열거된 상수들은 차례대로 0부터 시작하는 index를 가진다. 2. 상수들은 모두 대문자로 적어야한다. 3. 상수와..
더보기