일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바
- 스프링
- 컬렉션프레임워크
- 자료구조
- 문자열뒤집기
- java
- 그리디
- 백엔드
- 회고
- Spring Data JDBC
- 계산기만들기
- 부트캠프
- HTML
- Publishing
- testing
- fibonacci
- CSS
- FilterChain
- spring data jpa
- 깃허브
- Spring Security
- 제네릭스
- 페어프로그래밍
- 알고리즘
- 첫글자대문자
- 거듭제곱
- 백준알고리즘
- 인텔리제이
- CLI명령어
- 데일리코딩
- Today
- Total
목록SEB/TIL (40)
나의 모양
💙 Permutation & Combination 순열(Permutation): 요소 n개 중에 m개를 선택하여 순서를 지키면서 뽑는 경우의 수 조합(Combination): 순서에 상관없이 요소 n개 중에 m개를 뽑는 경우의 수 ! (factorial, 팩토리얼) n! 은 n에서부터 1씩 감소하여 1까지의 모든 정수의 곱 (n 보다 작거나 같은 모든 양의 정수의 곱) 팩토리얼에서 0! 과 1! 은 1 💜 오늘의 생각 조각모음 그리디 아무리 봐도 문제는 알겠는데 구현을 못하겠어서 잠시 보류하고 자바 공부했다. 알고리즘 너무 어렵다...ㅠ.ㅠ

💙 Greedy Algorithm 선택의 순간마다 당장 눈앞에 보이는 최적의 상황으로 최종적인 해답에 도달하는 방법 선택 절차(Selection Procedure): 현재 상태에서의 최적의 해답을 선택 적절성 검사(Feasibility Check): 선택된 해가 문제의 조건을 만족하는지 검사 해답 검사(Solution Check): 원래의 문제가 해결되었는지 검사하고, 해결되지 않았다면 선택 절차로 돌아가 위의 과정 반복 🤍 탐욕 알고리즘 조건 탐욕적 선택 속성(Greedy Choice Property): 앞의 선택이 이후의 선택에 영향을 주지 않음 최적 부분 구조(Optimal Substructure): 문제에 대한 최종 해결 방법은, 부분 문제에 대한 최적 문제 해결 방법으로 구성 ⇒ 항상 최적의 결..

💙 시간 복잡도 알고리즘에서는 문제에 대한 해답을 찾는 것과 함께 얼마나 효율적인 방법으로 문제를 해결했는지도 중요하다. 문제를 풀다가 더 효율적인 방법은 뭐가 있을지, 이게 제일 좋은 방법이 맞을지 고민하는 것은 시간 복잡도를 고민한다는 것과 같다. 🤍 개념 입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 얼만큼의 시간이 걸리는지를 고려하는 것 효율적인 알고리즘을 구현하는 것 = 입력값이 커짐에 따라 증가하는 시간의 비율을 최소화한 것 🤍 분류 최악의 경우(Worst Case): 최악의 시나리오로, 빅 오(Big-O) 표기법 사용 최선의 경우(Best Case): 최선의 시나리오로, 빅 오메가(Big-Ω) 표기법 사용 평균적인 경우(Average Case): 평균 시간을 나타내며, 빅 세타(..

💙 Tree 🤍 개념 계층적 자료구조 대상 정보의 각 항목들을 계층적으로 연관되도록 구조화시키고자 할 때 사용하는 비선형 자료구조 단방향 그래프 깊이 (depth) 루트로부터 하위 계층의 특정 노드까지의 깊이(depth)를 표현 레벨(Level) 같은 깊이를 가지고 있는 노드의 묶음 형제 노드(Sibling Node): 같은 레벨에 나란히 있는 노드 높이(Height) 리프 노드를 기준으로 루트까지의 높이(height)를 표현 리프 노드와 직간접적으로 연결된 노드의 높이를 표현 부모 노드는 자식 노드의 가장 높은 height 값에 +1한 값을 높이로 가짐 트리 구조의 높이를 표현할 때에는 각 리프 노드의 높이를 0으로 놓음 서브 트리(Sub tree) 트리 구조의 root에서 뻗어 나오는 큰 트리의 내부..

💙 Data Structure 🤍 자료구조 데이터란? 데이터: 문자, 숫자, 소리, 그림, 영상 등 실생활을 구성하고 있는 모든 값 데이터가 의미있어지려면: 분석 → 정리 → 활용 데이터의 사용: 필요 목적에 따라 형태 구분 → 분류 자료구조란? 자료의 효율적인 저장과 처리를 위해 자료의 목적에 따라 분류하여 구조화한 것 자료구조의 종류와 구분 💙 Stack 🤍 Stack 정의 & 구조 Stack: 쌓다, 쌓이다 데이터를 순서대로 쌓는 자료구조 stack에 데이터 넣기: push() 꺼내기: pop() 🤍 Stack 특징 LIFO(Last-In First-Out) - 후입선출구조 먼저 들어간 데이터는 제일 나중에 나옴 가장 먼저 들어간 프링글스는 위에꺼가 다 먹히기 전까지 나올 수 없음 public cl..

💙 File I/O 🤍 InputStream / OutputStream 더보기 File 입출력 스트림 ⇒ 바이트 기반 바이트기반 ⇒ 입출력단위: 1byte 스트림은 단방향으로만 데이터를 전송 ⇒ 입출력 동시에 처리 ⇒ 각각의 스트림이 필요 자바에서 입출력을 다루기 ⇒ InputStream / OutputStream 입출력 스트림은 어떤 대상을 다루느냐에 따라 종류가 나뉩니다. File을 다룰 때: FileInputStream / FileOutputStream 사용 프로세스를 다룰 때: PipedInputStream / PipedOutputStream 사용 FileInputStream echo FileInputStream >> fis.txt 보조스트림인 BufferedInputStream 사용하면 성능 향..

💙 Enum 🤍 History of Enum 더보기 서로 관련된 상수(변하지 않는 값, final)들의 집합 한정되어 변하지 않는 데이터를 다루는 데 사용 // 계절 public static final int SPRING = 1; public static final int SUMMER = 2; public static final int AUTUMN = 3; public static final int WINTER = 4; // 프레임워크 public static final int DJANGO = 1; public static final int SPRING = 2; // => 컴파일에러. 계절의 SPRING과 중복 발생! interface Seasons { int SPRING = 1, SUMMER = 2, ..

💙 Practical - Collection Framework w.Pair 🤍 TIL 더보기 메서드의 중요성 메서드의 목적 Collection - Map에서 put은 데이터를 조작할 수 있는 메서드이다. 그래서 반환값이 있어야 하지만 없어도 됨. 반환을 해도되고 안해도 됨 get은 데이터를 조작하지 않고 반환값을 사용하기 위한 메서드. 그래서 무조건 반환값이 있어야됨 목적과 하는 일이 값을 받아오는 것이기 때문에 반환값을 저장해야됨 만든 메서드를 그냥 바닥에, 공중에 둔닼ㅋ ⇒ 해결해주기 ArrayList, LinkedList, HashMap 메서드 활용 Generics를 사용해서 생성을 하고 그 생성한 값에 메서드를 어떤식으로 적용하면 되는지 알게됨 성능 차이? 무조건 이게 빠르다, 성능이 좋다 나쁘다..