일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- node
- 자바스크립트
- 운영체제
- DATABASE
- 되추적
- 알고리즘
- IT
- OS
- 탐욕기법
- 보안
- 데이터베이스
- access control
- ES6
- 컴퓨터보안
- 컴퓨터 보안
- 노드
- node.js
- NEST
- API문서
- AWS
- 병행제어
- 컴퓨터
- 백준
- DB
- rest docs
- 스프링부트
- S3
- 백트래킹
- 디비
- 인터럽트
- Today
- Total
목록전체 글 (106)
개발스토리
Firewall(방화벽) - 조직이나 기관의 내부의 네트워크를 바깥의 인터넷으로 부터 분리해서 보호하는 하드웨어, 소프트웨어 - 지나다니는 packet이나 traffic을 block한다. Firewall service 1. Traffic monitoring 2. Traffic control 3. NAT - 내부 네트워크 보호 4. VPN - 내부 traffic 노출 차단 Firewalls을 왜 쓸까? - prevent denial of service attacks -> DoS의 위험성을 경감시켜준다. 완벽히 막지는 못하는 것 같음. - prevent illegal modification/access of internal data -> 내부 데이터 접근 공격을 막기 위해 - allow only author..
탐욕 기법 소개 ● 매 번 선택할 때 마다 그 순간에 가장 좋은 선택을 함으로써 최종적인 해에 도달한다. ● 최적인 해들을 모아서 최종 해를 만들었다고 해서, 그 해가 궁극적으로 최적이라는 보장이 없다. ● 따라서 탐욕 기법은 항상 최적의 해를 만들어 내는 지를 반드시 검증해야 한다. 선택 기준 ● 선택이 실현 가능해야 한다. ● 모든 선택들 중에서 최적이라고 여겨지는 선택을 해야 한다. ● 한 번 선택하면 나중에 되돌릴 수 없다. 설계 전략 ● 비어 있는 해 모음으로 시작한다. ● 탐욕적인 기준에 따라 해 모음에 추가할 다음 해를 선택한다. ● 새 해 모음이 실현 가능한지를 확인한다. 실현 가능하다면 새 해 모음을 확정하고 아니면 선택한 해를 버린다. ● 새 해 모음이 최종 해라면 종료한다. 아니면 2..
N(> 0)개의 계단을 한 번에 하나 혹은 둘씩 올라갈 수 있다. N개의 계단을 올라가는 방법의 수를 구하려고 한다. 1. 1개의 계단을 올라가는 방법은 몇 가지인가? - 1가지 2. 2개의 계단을 올라가는 방법은 몇 가지인가? - 2가지 3. 3개의 계단을 올라가는 방법은 몇 가지인가? - 3가지 4. N(> 0)개의 계단을 올라가는 방법의 수에 대한 점화식을 작성하라. - N이 1일 때, F(N) = 1 - N이 2일 때, F(N) = 2 - Otherwise, F(N) = F(N-1) + F(N-2) //피보나치 5. 4번의 점화식을 사용하여 N(> 0)개의 계단을 올라가는 방법의 수를 구하는 재귀 알고리즘을 작성하라. - 알고리즘 countStair(N) // 입력값 : N(0보다 큰 자연수) /..
빠른 정렬(Quicksort) 분할 정복 알고리즘의 일종으로, 평균적으로 매우 빠른 수행 속도를 자랑한다. - 평균 시간복잡도: θ(n logn) - 최악 시간복잡도: θ(n^2) 빠른 정렬의 진행 과정 아래의 배열이 있다. 여기서 pivot이라 불리는 기준 값을 하나 정한다. 보통 맨 앞이나 중앙을 선택한다. 나는 중앙을 pivot으로 두겠다. 그 다음, pivot을 제외한 나머지에서 가장 왼쪽은 left, 가장 오른쪽은 right로 둔다. left와 right는 pivot과 비교한다. left는 pivot보다 큰 수를 만나면, right는 pivot보다 작은 수를 만나면 대기한 뒤 서로 교환한다. 이렇게 left와 right가 움직이다가 left가 right 오른쪽에 위치하면 그만둔다. 단, piv..
분할 정복 문제를 나눌 수 없을 때까지 나눈 뒤, 각각을 풀면서 다시 합병하여 문제의 답을 얻는 알고리즘. 분할 정복 설계 전략 1. 분할(Divide) 단계 - 문제를 같은 유형의 여러 개의 더 작은 부분 문제들로 나눈다. - 부분 문제는 풀기 쉬울 때까지 계속 나눈다. 2. 정복(Conquer) 단계 - 부분 문제들을 보통 재귀적으로 해결하여 해를 구한다. 3. 합병(Merge) 단계 - 문제에 대한 해를 구하기 위해 부분 문제들의 해를 합친다. -> 문제를 제대로 나눈다면 정복 단계는 쉬워지므로 분할 단계를 제대로 해야한다. 문제 : 최댓값 최솟값 찾기 문제: 크기가 n인 배열내의 요소들 중 최댓값과 최솟값을 찾는다. 1.최댓값을 찾는다. -- 비교 횟수: n – 1 2.남은 배열 요소들의 최솟값을..