일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- abstract
- IMPLEMENT
- Transition
- 여행
- HelloWorld
- 취약점
- extends
- Shared Elements
- 일상탈출
- 회피
- Android
- 심리여행
- bytecode
- 보안취약점
- ㅇ
- jvm
- throws
- 버킷리스트
- 여행계획
- bytecode 분석
- Interface
- 치유
- 보안
- Navigation Component
- static
- opcode
- 일상회피
- javap
- 심리학
- Recylcer
- Today
- Total
목록Algorithm/#define (7)
패스트터틀
본 포스팅은 블로거가 개발언어의 개념정리 필요를 위한것입니다. 목차와 차례가 뒤죽박죽이며 오직 블로거의 편의목적을 위해 작성되었음을 알려드립니다. - 힙 - 우선순위큐 - Comparable - 힙 heap은 트리이다. 가장 큰 원소를 찾는데 최적화된 형태의 이진트리이다.(minheap,maxheap은 연산자 차이밖에없음) 추가와 꺼내는 연산 모두 O(logN) 에 수행한다. 힙은 대부분의 프로그래밍 언어의 표준 라이브러이에 포함되어 있기 떄문에, 직접 구현할 일은 거의 없다. 힙은 다음과 같은 특징은 지녔다. - 부모노드와 자식관계만 적용되며 부모노드는 자식보다 커야하며 자식간의 관계는 생각하지 않는다. - 마지막 레벨을 제외한 모든 레벨이 노드가 꽉 차 있어야 한다. - 마지막 레벨에 노드가 있을 때..
본 포스팅은 블로거가 개발언어의 개념정리 필요를 위한것입니다. 목차와 차례가 뒤죽박죽이며 오직 블로거의 편의목적을 위해 작성되었음을 알려드립니다. - Dijkstra - Floyd warshall - - Dijkstra A -> B 로 갈때 최단 경로의 수를 구하는 알고리즘이다. 우선 그전에 가중치에 대해서 알아야한다. 가중치란 꼭짓점과 꼭짓점 사이에 존재하는 변으로 그 위에 비용을 적은 숫자를 말한다. 쉽게 말해서 X에서 Y로 갈때 드는 시간, 돈, 에너지와 같이 소모될 비용에 대한 것이다. 그리고 이것을 바탕으로 X에서 Y로 가는 가중치에 대하여 최소한의 가중치를 구하는것이 다익스트라 알고리즘이다. 쉽게 말해 가장 최단 노선으로 갈경우의 비용을 계산하는것이다. 알고리즘 - 1) 가장 비용이 저렴한 정..
본 포스팅은 블로거가 개발언어의 개념정리 필요를 위한것입니다. 목차와 차례가 뒤죽박죽이며 오직 블로거의 편의목적을 위해 작성되었음을 알려드립니다. - Linear Searching - Binary Searching - Upper,Lower bound - Linear Searching ~~ for(int i = 0 ; i last) return -1; int mid = (first + last) / 2; if (val == arr[mid]) r..
본 포스팅은 블로거가 개발언어의 개념정리 필요를 위한것입니다. 목차와 차례가 뒤죽박죽이며 오직 블로거의 편의목적을 위해 작성되었음을 알려드립니다. - dp - bitmask - lis - dp dp = dynamic programming 의 약자로 단어자체와 개념은 전혀 연관이없으며 쉽게말해서 기억하며 프로그래밍하는것이다. 예를들어서 fibonacci 수열을 구할때 다음과 같이 코딩을 할수있다. 예를들어서 int dp(int x){ if(x==1) return 1; if(x==2) return 2; return dp(x-2) + dp(x-1); } int main(){ cout
ㅇ 기본적인 틀 ㅇ A에서 A2 -> A3 -> ... -> An 까지 호출후 An -> An-1 -> ... -> A2 -> A1 순서대로 반환 Stack을 쌓고 회수하는 과정이다. 재귀함수가 어려운이유 1. 인간의 직관으로 이해해야 하는영역이기 때문에 직관적이라는 장점과 직관적이라는 단점이 존재 2. 기존에 접해보지 않은 반복문이라 익숙하지 않음 예를들어서 기본 반복문과의 차이점을 살펴볼때 1부터 10까지 출력하는 프로그램 작성하였을때 for(int i = 0 ; i < 10 ; i++){ System.out.println("%d", i); } 위와 같이 단순 반복문을 사용할경우에는 매우 쉽지만 public class _Ere{ // 1부터 10까지 출력한다. static void sum(int a)..
본 포스팅은 블로거가 개발언어의 개념정리 필요를 위한것입니다. 목차와 차례가 뒤죽박죽이며 오직 블로거의 편의목적을 위해 작성되었음을 알려드립니다. - (basic)linked list - (basic)recursive call - stack - queue - bfs,dfs - backtracking - (basic)linked list A linked list whose nodes contain two fields: an integer value and a link to the next node. The last node is linked to a terminator used to signify the end of the list. from : https://beginnersbook.com/2013/12..
본 포스팅은 블로거가 개발언어의 개념정리 필요를 위한것입니다. 목차와 차례가 뒤죽박죽이며 오직 블로거의 편의목적을 위해 작성되었음을 알려드립니다. - 시간복잡도란? - 공간복잡도란? - Big-O는 어떻게 표현하는가? - 트리란? - 힙트리 코드구현 - 정렬의 종류와 시간복잡도 - 정렬 알고리즘의 코드(c++) - 퀵정렬 vs 힙정렬 - 비트연산자와 시프트(shift)연산자의 의미 - 재귀 호출(recursive call)이란 무엇이고 왜 사용하나? - 시간복잡도란 big-O에서의 개념이다. 시간복잡도는 알고리즘의 수행시간이 얼마인지를 나타내는것이다. - 공간복잡도란 메모리를 얼마나 잡아 먹느냐에 따른건데 제한된 메모리의 영역(임베디드, 펌웨어 하드웨어등)에서의 코딩할때는 중요하다. 하지만 요새는 기술이..