본문 바로가기

개발/Java

(3)
[자.알.인] CH19. 비트 조작 1. 비트 조작 비트(bit)는 Binary Digit을 줄인 말로 데이터를 나타내는 최소 단위입니다. 0과 1 두 개의 값만을 가질 수 있습니다. 8bit가 모여 1Byte가 되며 이 후 단위들은 킬로, 메가, 기가 등 컴퓨터 저장 용량이나 RAM 용량 등에서 보던 익숙한 단위가 보이게 됩니다. 2. 부울 연산자 가장 기본적인 부울 연산(Boolean Operation)에 대해서 설명드리겠습니다. AND OR NOT NAND NOR XOR XNOR 등 으로 소개가 되어있습니다. 저 중에 0과 1의 숫자로 이용하는 '비트 연산자'에서 일부 사용이 가능합니다. 3. 비트 연산자 위의 부울 연산자에서 사용되는 것은 4가지의 연산이 있습니다. AND(&) 두 자릿수 중 하나라도 0이 있으면 0, 없으면 1로 ..
[자.알.인] CH16. 트라이 1. 트라이(Tire)란? 트라이(Trie)는 검색 트리의 일종으로 일반적으로 키가 문자열인, 동적 배열 또는 연관 배열을 저장하는데 사용되는 정렬된 트리 자료구조입니다. 특히 실무에 매우 유용하게 쓰이는 자료구조로서, 자연어 처리(NLP) 분야에서 문자열 탐색을 위한 자료구조로 널리 쓰입니다. 래딕스 트리(radix tree) / 접두사 트리(prefix tree) / 탐색 트리(retrieval tree)라고도 불린다. 여기서 트라이는 retrieval tree의 'trie'를 따온 단어입니다. 해당 자료구조는 예를 들어서 'Datastructure'라는 단어를 검색하기 위해서 제일 먼저 'D'를 찾고, 다음 단어 순서로 찾는 방식입니다. 2. 트라이 구현(Java) 자.알.인의 문제 62번 '트라이..
[자.알.인] CH08. 연결 리스트 1. 연결 리스트(Linked List)란? 배열과 함께 가장 기본이 되는 대표적인 선형 자료구조 중 하나로, 다양한 추상 자료형 구현의 기반이 된다. 순서대로 저장하는 배열과 다르게 데이터의 순서가 메모리에 물리적인 순서대로 저장되지는 않는다. 어떤 데이터 덩어리(이하 노드(Node))를 저장할 때 그 다음 순서의 자료가 있는 위치를 데이터에 포함시키는 방식으로 자료를 저장한다. 연결 구조를 통해 물리 메모리를 연속적으로 사용하지 않아도 되기 때문에 관리도 쉽다. 특정 인덱스에 접근하려고 할 때 전체를 순서대로 읽어야 하기 때문에 시간 복잡도는 O(n) 이다. 반면, 시작/끝 지점에 엘리멘트를 추가, 삭제, 추출하는 작업의 시간 복잡도는 O(1) 이다. 2. 자.알.인에서의 연결 리스트 문제 위의 설명..