일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Flutter
- 프로그래머스
- 리눅스
- 스프링
- 자바스크립트
- Java
- 자료구조
- 데이터
- 스프링 부트 쇼핑몰 프로젝트 with JPA
- CS지식
- spring
- 네트워크
- python
- 플러터
- Spring Security
- postgresql
- 스프링부트
- CS
- javascript
- 데이터베이스
- JPA
- springboot
- DB
- 자바
- Oracle
- baekjoon
- 백준
- backjoon
- 시큐리티
- 파이썬
- Today
- Total
목록CS 지식/[자료구조] (14)
Jin's Dev Story
깊이우선탐색 - DFS 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘 → 정점의 자식들을 먼저 탐색하는 방식 스택 자기 자신을 호출하는 순환 알고리즘의 형태를 지님 인접리스트로 표현된 그래프 : O(N+E) 인접 행렬로 표현된 그래프 : O(N^2) public class DFS { public static void main(String[] args) { HashMap graph = new HashMap(); graph.put("A", new ArrayList(Arrays.asList("B", "C"))); graph.put("B", new ArrayList(Arrays.asList("A", "D"))); graph.put("C", new ArrayList(Arrays.asList("A", "G",..
와일드카드 ?의 의미는 알 수 없는 타입이고 모든 타입이 될 수 있음 제네릭 타입을 사용하고 싶지만, 들어오는 실제 타입 매개변수가 무엇인지 신경쓰고 싶지 않다면 와일드카드()를 사용함 제네릭 타입와 와일드 카드의 차이 제네릭 : 타입을 모르지만, 타입이 정해지면 그 타입의 특성에 맞게 사용함 와일드 카드 : 무슨 타입인지 모르고, 무슨 타입인지 신경쓰지 않음. 타입을 확정하지 않고 가능성을 열어둠 interface Drink{ } class Coffee implements Drink{ } class Milk implements Drink{ } public class GenericTest { private void test1(final List
제네릭(generic) 데이터의 타입을 일반화한다는 것을 의미 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법 제네릭 장점 클래스나 메소드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있음 반환값에 대한 타입 변환 및 타입 검사에 들어가는 노력을 줄일 수 있음 제네릭의 선언 및 생성 class MyArray { T element; void setElement(T element) { this.element = element; } T getElement() { return element; } } public void test(){ List example = new ArrayList(); method1(example); // 제네릭 타입이 일치하지 않기 때문에 컴파일 에러 발..
알고리즘의 복잡도를 판단하는 척도는 시간 복잡도와 공간 복잡도가 있음 그 중 시간 복잡도는 알고리즘 내 연산의 횟수와 밀접한 관계가 있음 시간 복잡도 표기법 Big-O(빅 오) 표기법 알고리즘 최악의 실행 시간을 표기함 가장 많이 사용하는 표기법 최소한 보장되는 성능을 표기 Big-Ω(빅 오메가) 표기법 알고리즘 최상의 실행 시간을 표기 Big-θ(빅 세타) 표기법 알고리즘 평균 실행 시간을 표기 x축 → 자료 입력 개수, y축 → 시간 실행 속도 O(1) → O(log N) → O(N) → O(N log N) → O(N^2) → O(2^N) 빅오 표기법의 특징 상수항(영향력 없는 항) 무시 : O(N + 1) → O(N)으로 표기 계수 무시 : O(2N) → O(N)으로 표기 최고차항만 표기 : O(3..
자료구조란? 프로그램에서 사용하기 위한 자료를 기억장치의 공간 내에 저장하는 방법과 저장된 그룹 내에 존재하는 자료 간의 관계, 처리 방법 등을 연구 분석하는 것 선형 구조(Linear Structure) 배열(Array) 선형 리스트(Linear List) 스택(Stack) 큐(Queue) 데크(Deque) 비선형 구조(Non-Linear Structure) 트리(Tree) 그래프(Graph) 자료구조의 활용 정렬(Sort) 검색(Search) 인덱스(Index) 배열(Array) 동일한 자료형의 데이터들이 같은 크기로 나열되어 순서를 갖고 있는 집합 정적인 자료구조 데이터 삭제 시 삭제된 공간이 빈 공간으로 남아있어 메모리의 낭비가 발생함 반복적인 데이터 처리 작업에 적합 선형 리스트(Linear L..
HashMap Map인터페이스에 속해있는 컬렉션 키 : 값 - 1 : 1 HashMap 선언 import java.util.HashMap; public class HashMapDemo { public static void main(String[] args) { HashMap hm = new HashMap(); // 타입 설정x Object 입력 HashMap i = new HashMap(); // Integer, Integer 타입 설정 HashMap i2 = new HashMap(i); // i의 값을 i2에 카피 HashMap i3 = new HashMap(10); // 초기용량 지정 HashMap i4 = new HashMap() {{ // 변수 선언 + 초기값 지정 put(1, 100); put(..