Binary Search (이진 탐색)
이진 탐색(Binary Search)은 정렬된 배열에서 원하는 값을 시간복잡도 O(log N) 만에 찾아내는 탐색하는 방법입니다. 오름차순으로 정렬된 사이즈가 N인 배열 D에서 원하는 값 k(k = 11)를 찾는 방법은 다음과…
이진 탐색(Binary Search)은 정렬된 배열에서 원하는 값을 시간복잡도 O(log N) 만에 찾아내는 탐색하는 방법입니다. 오름차순으로 정렬된 사이즈가 N인 배열 D에서 원하는 값 k(k = 11)를 찾는 방법은 다음과…
에라토스테네스의 체는 특정 범위의 수들이 소수(Prime)인지 아닌지를 판별하는 알고리즘입니다. 예를 들어 1부터 50까지 수 중에서 소수를 구하고자 한다면 다음과 같은 배열이 필요합니다. 1 2 3 4 5 6 7 8 9 10 11…
거품정렬(Bubble Sort)은 인접한 원소들의 대소관계를 비교하여 일정한 대소관계를 만족하지 않을 시, 인접한 원소를 교환하는 방법으로 진행되는 정렬입니다. 다음은 버블 정렬을 쉽게 시각화 한 내용입니다. 먼저 4와 2를 비교해…
삽입정렬은 배열을 정렬된 부분, 정렬되지 않은 부분으로 나눈 후, 원소를 순차적으로 탐색하면서 해당 원소를 정렬이 된 부분에 끼워 넣는 정렬입니다. 맨 처음 원소 1 를 정렬되었다고 가정한 후, 정렬되지 않은 다음
선택 정렬은 매 차례마다 정렬되지 않은 원소들을 모두 확인하여 각 인덱스에 맞는 원소를 선택하여 해당 인덱스의 원소와 교환해주는 정렬입니다. 매 차례마다 남은 원소들을 모두 확인하기 때문에 시간 복잡도는 최악의 연산 횟수나 평균…
SQL Injection 공격의 일종으로 데이터베이스에 참 거짓 질문을 통해 어플의 반응에 따라 답변을 결정함. 주로 웹이 일반적인 오류 메세지를 보여줄 때 사용된다. SQL Injection을 사용할 때, 웹에서 SQL 쿼리…
XSS는 자바스크립트와 연관이 깊다. 여기서 자바스크립트란. 웹 애플리케이션에 사용되는 언어, 동적인 기능 구현(마우스를 가져가면 메뉴의 색깔이 변함). 스크립트 코드 와 같이 구현. 쿠키를 빼올 때 사용하는 스크립트,…
데이터베이스에 전송되는 SQL 쿼리문을 조작하여, 데이터를 변조하거나 허가되지 않은 정보에 접근하는 것. 2011년 소니 해킹, 2015년 어나니머스 WTO 해킹 등. 예제 1) 다음 C# 코드는 특정 이름을 찾아내는데 사용된다.…
웹을 통해 시스템명령어(커맨드)를 실행하는 공격 웹 내부에서 시스템 명령어를 실행하는 경우 입력을 제대로 검사하지 않으면, 해커 마음대로 시스템 명령어 실행 가능! 위는 파일 내용을 명령어 cat을 통해 출력하는 코드이다. 위…
지정한 파일을 PHP include()로 소스코드에 입력 LFI(로컬파일인클루젼) - 이미 시스템에 존재하는 파일을 입력 RFI(리모트파일인클루젼) - 외부에 있는 파일을 원격으로 입력 Low Level 칼리 리눅스에서 주소창에…