- 저는 새로운 것을 알아가고 공부하는 것을 좋아합니다.
- 생각을 글로 (또는 코드로) 체계적으로 정리하는 데 재미를 느낍니다.
- 상황을 다양한 시각으로 바라보고 고려하기 위해 노력합니다.
- 정직하면서 성숙하게 말하는 사람이 되고 싶습니다.
잘 정리된 모습은 아니지만 제가 공부하고 생각한 내용을 기록하는 공간입니다.
들러주셔서 감사합니다. 좋은 하루 되세요!
최신글
Quickselect는 정렬되지 않은 배열에서 k번째로 작은 원소를 평균 O(n)에 찾는 알고리즘이다. 퀵소트의 파티션을 그대로 쓰되, 양쪽을 다 재귀하지 않고 k가 속한 쪽만 따라간다.
동작
파티션은 피벗을 하나 골라서 작은 원소는 왼쪽, 큰 원소는 오른쪽으로 보낸다. 피벗은 정렬된 최종 위치에 놓인다. 피벗 위치가 k면 끝이고, 아니면 k가 있는 쪽으로 재귀한다.
[3, 7, 2, 8, 1, 5, 4]에서 3번째로 작은 원소 (k=2, 0-indexed)를 찾자.
피벗 4 → 파티션 → [3, 2, 1, 4, 7, 8, 5]
↑ 피벗 위치 = 3
k=2 0이니까 오른쪽 [2, 3]만 본다.
피벗 3 → 파티션 → [2, 3]
Quicksort는 피벗을 기준으로 배열을 둘로 나누고, 각각을 재귀적으로 정렬하는 알고리즘이다. (평균 O(n log n), 최악 O(n²))
파티션
피벗을 하나 고르고, 배열을 순회하면서 피벗보다 작은 원소를 왼쪽으로 모은다. 순회가 끝나면 피벗을 중간에 넣는다. 피벗은 최종 정렬 위치에 놓인다.
[3, 7, 2, 8, 1, 5, 4] 피벗 = 4
j=0: a[0]=3 & a, int lo, int hi) {
if (lo >= hi) return;
int pivot = a[hi], i = lo;
for (int j = lo; j j → 파티션 끝. 분할 지점 = j = 2
[3, 1, 2 | 8, 7, 5, 4]
≤ 3 ≥ 3
IoU(Intersection over Union)는 두 영역이 얼마나 겹치는지를 0~1 사이 값으로 나타내는 지표이다. object detection에서 예측 bbox와 정답 bbox의 일치도를 평가하는 데 쓰이고, 그 외에도 영역 기반 매칭이 필요한 곳에 범용적으로 쓰인다.
계산
IoU = 교집합 넓이 / 합집합 넓이
두 bbox A, B가 각각 (x1, y1, x2, y2) 형식일 때:
python
def iou(a, b):
교집합
ix1 = max(a[0], b[0])
iy1 = max(a[1], b[1])
ix2 = min(a[2], b[2])
iy2 = min(a[3], b[3])
inter = max(0, ix2 ix1
고려 시대 구분
초기(918~1018년): 호족 세력, 태조 왕건, 거란 침입
문벌귀족(1018~1170년): 문벌 귀족, 이자겸의 난, 묘청의 난
무신집권기(1170~1270년): 무신, 정중부, 최씨정권, 몽골 항쟁
원 간섭기(1270~1351년): 권문세족, 정동행성, 공민왕 개혁
말기(1351~1392년): 신진사대부, 신흥무인, 홍건적, 왜구
고려 초기
태조 왕건
훈요 10조를 남겼다
정계와 계백료서를 지어 관리가 지켜야 할 규범을 제시하였다
개국 공신에게 역분전을 지급하였다
빈민 구제 기관인 흑창이 처음 설치되었다
기인 제도(지방 호족 자제를 수도에 머물게 함)
사심관 제도(출신 지역 관리를 사심관으로 임명하여 해당 지역을 통제하게 함)
태조 1. 선사 문화와 국가의 형성
선사시대
구석기
동굴이나 막집, 주먹도끼, 슴베찌르개, 이동생활, 흥수아이(충북 두루봉 동굴)
신석기
모서리가 둥근 움집(화덕 중앙), 농경, 목축, 정착생활, 이른민무늬·빗살무늬토기
청동기
계급·재산, 고인돌, 직사각형 움집(화덕 한쪽 벽), 벼농사, 반달돌칼, 비파형동검
철기
세형동검, 철제농기구, 반량전, 명도전, 붓, 널무덤, 독무덤, 중국과의 교류 활발
연맹왕국
부여
사출도, 순장, 1책12법·형사취수제(고구려와 동일), 흰옷, 우제점복, 영고(12월)
부여엉고
고구려
제가회의, 상가·고추가·대로, 패자·사자·조의, 서옥제, 산악지대(약탈), 동맹(10월)
옥저
어물·소금(고구려에 공납), 민며느리제, 가족공동무덤, 삼로·읍
OpenCV의 cv2.inpaint() 함수는 이미지에서 손상된 영역이나 제거하고 싶은 객체를 주변 픽셀 정보를 이용해 자연스럽게 채우는 기법이다. 사진에서 스크래치를 제거하거나, 워터마크를 지우거나, 불필요한 객체를 없애는 데 사용된다.
python
import cv2
dst = cv2.inpaint(src, mask, inpaintRadius, flags)
result = cv2.inpaint(image, mask, 3, cv2.INPAINT_TELEA)
또는
result = cv2.inpaint(image, mask, 3, cv2.INPAINT_NS)
src: 입력 이미지
mask: 복원할 영역을 표시한 마스크 (흰색 픽셀이 복원 대상)
inpaintRadius: