목차 개념 Stack은 자료 구조 중 하나로 상자에 물건을 쌓아 올리듯이 데이터를 쌓는 자료 구조 입니다. Stack의 가장 큰 특징은 나중에 들어간 것이 먼저 나오는 후입선출(Last In Fist Out) 형태인 것 입니다. 이 방식을 가진 자료구조인 Stack을 이용해 다양한 문제를 해결할 수 있습니다. 특징 1. 먼저 들어간 자료가 나중에 나옵니다. LIFO (Last In Frist Out) 2. 시스템 해킹에서 버퍼오버플로우 취약점을 이용한 공격을 할 때 스택 메모리의 영역에서 합니다. 3. 인터럽트 처리, 수식의 계산, 서브루틴의 복귀 번지 저장 등에 사용됩니다. 4. 그래프의 깊이 우선 탐색(DFS)에 사용됩니다. 5. 재귀적(Recursion) 함수를 호출 할 때 사용합니다. 사용법 선언..
목차 개념 Map이란? Key와 Value의 한쌍으로 이우러진 데이터의 집합입니다. Key에 대한 중복은 없으면 순서를 보장하지 않습니다. 뛰어난 검색 속도를 가집니다. 인덱스가 따로 존재하지 않기 때문에 iterator를 사용합니다. 종류와 특징 Map은 인터페이스이므로 구현체를 선언해 사용합니다. 구현체의 종류는 4가지가 있습니다. HashMap, HashTable, LinkedHashMap, TreeMap HashMap HashMap은 내부에 Key 와 Value 를 저장하는 자료 구조를 가지고 있습니다. HashMap은 해시 함수를 통해 키와 값이 저장되는 위치를 결정하므로, 사용자는 그 위치를 알 수 없고, 삽입되는 순서와 들어 있는 위치 또한 관계 없습니다. 특징 Key에 대한 중복이 없으며 ..
Queue 정리 FIFO ( First In First Out ) 선입선출 방식이다. Enqueue : 큐 맨 뒤에 데이터를 추가 Dequeue : 큐 맨 앞쪽에 데이터를 추가 import java.util.*; // 큐 선언 Queue que = new LinkedList(); // 값 추가 que.add(1); que.offer(0); // 첫 번째 값 뽑기 que.poll(); // 첫 번째 값 참조 que.peek(); // 초기화 que.clear();
String 문자열 관련 정리 추후에 계속 업데이트 됩니다. String 문자열 // String 선언 String str = "Hello world"; // 문자 하나에 접근 char ch = str.charAt(0); // H // 문자열의 길이 str.length(); // 문자열 같은지 확인 str.equals("Hello world"); // 문자열 나누기 String[] sp = str.split(" "); // 문자열의 포함되는지 확인 str.contains("He"); // 문자열 나누기 str = str.substring(0, str.length() - 1); // 문자열 교체하기 str = str.replace("H", "h"); str = str.replaceAll("[ld]", ""..