Categories

2025

[Algorithm] C++ 백준 5920번: Cow Photography

BOJ 5920 Cow Photography 문제는 다섯 장의 사진에서 최대 한 번씩만 자리를 옮긴 소들의 줄 서기 결과를 보고, 원래 의도된 순서를 복원하는 순열 재구성 문제입니다. 각 쌍의 소에 대해 다섯 사진에서의 상대적 순서를 다수결로 비교하는 아이디어를 사용해, 안정적인 커스텀 정렬 비교 함수를 설계하고 C++로 O(N log N)에 유일한 답을 구하는 방법을 정리합니다.
[Algorithm] C++ 백준 5920번: Cow Photography

[Algorithm] C++ 백준 20131번: 트리 만들기

N개의 정점으로 이루어진 트리에서 리프를 큰 번호부터 하나씩 제거하며 인접 정점을 기록해 얻은 수열이 주어졌을 때, 원래 트리를 역으로 복원하는 문제입니다. 차수와 우선순위 큐를 이용해 리프를 관리하고, 마지막 두 정점을 연결하는 방식으로 O(N log N)에 유일한 트리를 구성하거나, 불가능한 경우를 안전하게 검출하는 구현과 정당성을 정리합니다.
[Algorithm] C++ 백준 20131번: 트리 만들기

[Algorithm] C++ 백준 11409번: 열혈강호 6

BOJ 11409 열혈강호 6 문제는 직원과 일을 이분 매칭한 뒤, 먼저 처리 가능한 일의 개수를 최대로 하고 그 상태에서 월급 총합을 최대로 만드는 최소 비용 최대 유량(Min Cost Max Flow) 유형입니다. 이 글에서는 문제 해석부터 그래프 모델링, 음수 비용 간선 구성, SPFA 기반 최소 비용 최대 유량 구현까지 전체 풀이 과정을 C++ 코드와 함께 자세히 정리합니다.
[Algorithm] C++ 백준 11409번: 열혈강호 6

[Algorithm] C++/Python 백준 16993번: 연속합과 쿼리 (세그먼트 트리)

길이 N(≤100,000) 수열에 대해 구간 [i,j]의 최대 연속합을 O(log N)으로 질의하는 세그먼트 트리 풀이입니다. 각 노드에 합·최대 접두/접미합·구간 최대합을 저장하고 병합 규칙으로 정답을 계산합니다. 음수 전용 구간·단일 원소·전부 음수인 경우를 안전하게 처리하며, 시간·공간 복잡도와 실수 포인트를 정리했습니다.
[Algorithm] C++/Python 백준 16993번: 연속합과 쿼리 (세그먼트 트리)

[Movie] Escape Plan 2: Hades (이스케이프 플랜 2: 하데스) (2018)

레이 브레슬린 팀이 자동화 감옥 ‘하데스’에 다시 뛰어드는 직행 비디오 속편. 알고리즘으로 운영되는 감시·고문 시스템과 배신의 서사를 전면에 내세우지만, 산만한 연출과 설계 미흡으로 액션·서스펜스의 리듬을 잃는다. 그러나 ‘기계가 만든 감옥’이라는 아이디어는 시대적 불안을 비추는 흥미로운 단서로 남는다.
[Movie] Escape Plan 2: Hades (이스케이프 플랜 2: 하데스) (2018)

[Algorithm] C++/Python 백준 9244번: 핀볼 - 스위프 라인

선분이 서로 교차하지 않는 핀볼 보드에서 x=x0로 공을 떨어뜨릴 때, 선분을 만난 뒤에는 더 낮은 끝점으로 흘러 다시 수직 낙하합니다. 스위프 라인과 활성 집합으로 각 선분 하단에서 바로 아래 선분을 연결해 흐름 그래프를 만든 뒤, 시작 x에서 최상단 선분부터 따라 내려가 O(N log N)으로 최종 x좌표를 구합니다. 정수 기하 비교로 오차 없이 안전하게 구현합니다.
[Algorithm] C++/Python 백준 9244번: 핀볼 - 스위프 라인

[Algorithm] C++/Python 백준 18123번: 평행우주

각 별자리는 s≤30의 트리로 주어집니다. 위상(동형)만을 비교하므로 번호를 무시하고 트리 중심에서 AHU 문자열 정규형을 만들어 대표값을 구한 뒤, 두 중심일 땐 사전순 최소를 택해 중복을 제거합니다. 서로 다른 정규형의 개수가 한 우주에 공존 가능한 별자리 최대 수가 됩니다. 전체 별 수 합 ≤1e6 조건에서 선형에 가깝게 처리되어 안전합니다.
[Algorithm] C++/Python 백준 18123번: 평행우주

[Algorithm] C++ 백준 8987번: 수족관 3 - 카르테시안 트리

수평 바닥을 구간 높이 배열로 모델링한 뒤, 최소 높이 기준으로 구간을 분할하는 카르테시안 트리를 구성해 각 노드 직사각형 넓이를 계산합니다. 분할로 얻는 이득을 우선순위 큐에 넣어 상위 K개를 합하면 최대 배수량을 얻습니다. 구현은 O(N)~O(N log N)으로 안정적이며, 64-bit 정수 오버플로와 구간 경계 처리, 입력 형식 차이 등을 면밀히 점검합니다.
[Algorithm] C++ 백준 8987번: 수족관 3 - 카르테시안 트리

[Algorithm] C++ 백준 6171번: 땅따먹기 - 묶음 할인 최소 비용 DP+CHT

여러 직사각형 땅을 묶어 살 때 비용은 (묶음 내 최대 W)*(묶음 내 최대 H)입니다. W 오름차순 정렬 후 같은 W는 최대 H로 병합하고, 뒤에서 앞으로 보며 지배된 직사각형을 제거해 H를 단조 감소로 만듭니다. 이후 dp[i]=min(dp[k]+W[i]*H[k+1])를 단조 Convex Hull Trick으로 O(n)에 계산하며, 정수 교차 비교와 __int128 중간 연산으로 오버플로를 방지합니다.
[Algorithm] C++ 백준 6171번: 땅따먹기 - 묶음 할인 최소 비용 DP+CHT

[Algorithm] C++ 백준 4001번: 미노타우르스 미궁

좌·우수법(Left/Right-hand rule)으로 정의되는 두 개의 표준 경로를 계산하고, 2차원 누적합으로 직사각형 내부 경로/장애물 포함 여부를 O(1)에 판정합니다. 각 좌표별로 ‘막히는 최소 정사각형 크기’와 ‘설치 가능한 최대 정사각형 크기’를 각각 이분 탐색해 교집합이 존재하면 정답 후보로 갱신하여, 가장 작은 변의 길이와 위치를 찾습니다.
[Algorithm] C++ 백준 4001번: 미노타우르스 미궁

[Algorithm] C++ 백준 3319번: 전령들

트리의 각 도시에서 수도까지 메시지를 가장 빨리 전달하는 최소 시간을 구하는 문제입니다. 도시 i는 출발 준비 시간 S_i와 1km당 이동 시간 V_i를 가지며, 유일한 최단 경로를 따라 이동 중 중간 도시에서 다른 전령에게 넘길 수 있습니다. dp[u]를 루트까지의 거리 dist[u]를 이용해 dp[u] = S_u + V_u·dist[u] + min_{조상 x}(dp[x] − V_u·dist[x])로 정리하고, 조상 집합에 대한 직선 최소값 질의를 처리하기 위해 Li Chao Tree(선형함수 컨벡스 헐 트릭)를 트리 경로에 영속적으로 유지(퍼시스턴스)하여 각 정점에서 O(log C)에 답합니다. 64비트 정수 및 곱셈 시 128비트 캐스팅으로 오버플로를 방지합니다.
[Algorithm] C++ 백준 3319번: 전령들

[Algorithm] C++ 백준 3311번: Traffic - SCC 압축과 DAG 구간 전파

섬 내부 도로망은 선분 도로가 교차하지 않는 평면 그래프이므로, SCC 압축 DAG에서 각 컴포넌트가 도달할 수 있는 동쪽 경계 정점 집합은 y좌표 기준 연속 구간이 됩니다. 이를 이용해 동쪽 경계 정점(서쪽에서 실제로 도달 가능한 것만)을 y 오름차순으로 인덱싱하고, 자식 구간을 부모로 병합하는 역위상 전파로 각 서쪽 정점의 답(서쪽 정점에서 도달 가능한 동쪽 정점 수)을 O(n+m)에 계산합니다. 구현은 반복형 Kosaraju + 압축 그래프 위상정렬 기반입니다.
[Algorithm] C++ 백준 3311번: Traffic - SCC 압축과 DAG 구간 전파

[Algorithm] C++ 백준 3295번: 단방향 링크 네트워크 - 최대 매칭

단방향 링크 네트워크를 링과 선형 배열로 분해할 때의 최대 가치는 선택된 간선 수와 동일합니다. 각 정점의 진입·진출 차수를 최대 1로 제한하는 간선 선택 문제를 좌·우 파티션으로 분리한 이분 매칭으로 모델링하고, Hopcroft–Karp 알고리즘으로 O(√V·E)에 해결합니다. 구현 포인트와 코너 케이스까지 정리했습니다.
[Algorithm] C++ 백준 3295번: 단방향 링크 네트워크 - 최대 매칭

[Algorithm] C++ 백준 24272번: 루트 노드가 많은 트리일수록 좋은 트리이다

유일 경로 트리의 간선 방향을 제어하며 ‘모든 정점에 도달 가능한 루트’의 수를 유지하는 문제입니다. Euler tour로 서브트리를 구간화하고, child→parent 제약의 교집합과 parent→child 제약의 합집합을 각각 multiset과 세그먼트 트리로 관리하여 매 쿼리 O(log N)에 정답을 계산합니다. 엣지 케이스(교집합 공집합, 전역 인터벌, 무방향 전환)까지 안정적으로 처리합니다.
[Algorithm] C++ 백준 24272번: 루트 노드가 많은 트리일수록 좋은 트리이다

[Algorithm] C++ 백준 18227번: 성대나라의 물탱크

루트 C에서 시작하는 트리에서 "A 도시에 물 채우기"는 루트→A 경로의 각 정점 v에 깊이(v)+1 리터를 더합니다. 따라서 임의의 정점 v의 물의 양은 서브트리(v)에서 발생한 갱신 횟수 × (깊이(v)+1)로 환원됩니다. 오일러 투어로 트리를 평탄화하고 펜윅 트리(BIT)로 서브트리 구간의 갱신·질의를 처리해 O((N+Q)logN)에 해결합니다. 경계 입력과 64-bit 오버플로를 주의합니다.
[Algorithm] C++ 백준 18227번: 성대나라의 물탱크

[Algorithm] C++ 백준 16977번: 히스토그램에서 가장 큰 직사각형과 쿼리 - PBS+세그트리

히스토그램의 구간 [l,r]에서 너비 w가 고정일 때 최대 넓이는 길이 w 윈도우의 최솟값을 최대화하는 문제입니다. 높이 좌표압축과 임계값 단조성을 이용해 병렬 이분탐색을 수행하고, 세그먼트 트리(연속 1의 최댓값)로 검증하여 각 쿼리를 빠르게 해결합니다. 엣지 케이스와 실수 포인트까지 점검합니다.
[Algorithm] C++ 백준 16977번: 히스토그램에서 가장 큰 직사각형과 쿼리 - PBS+세그트리

[Algorithm] C++ 백준 16670번: King Kog의 접견실 - 세그먼트 트리

기사들의 방문(도착 시각 t, 소요 d)이 실시간으로 추가/취소되는 상태에서 공주가 시각 t에 도착했을 때의 대기 시간을 즉시 구합니다. 누적 처리량 P(t)와 선형 시간 t를 결합한 백로그 공식 W(t) = (P(t) - t) - min_{u≤t}(P(u) - u) 를 활용하고, 좌표 압축 + 지연 전파 세그먼트 트리로 접수/취소는 suffix 가산, 질의는 점/구간 최소를 O(log N)에 처리해 q ≤ 3e5를 안정적으로 통과합니다.
[Algorithm] C++ 백준 16670번: King Kog의 접견실 - 세그먼트 트리

[Algorithm] C++ 백준 13546번: 수열과 쿼리 4 - Mo+제곱근분할

구간 [L,R]에서 같은 값의 두 위치 간 최대 거리(max |x−y|, A[x]=A[y])를 묻는 질의를 Mo 알고리즘으로 처리합니다. 값별 위치 데크와 거리 빈도(√ 분할)를 유지해 추가/제거 O(1)로 갱신하고, 블록 카운팅으로 최대 거리를 즉시 찾습니다. 경계 이동 순서·인덱스 변환·거리 갱신 누락 실수를 방지하는 체크리스트까지 정리했습니다.
[Algorithm] C++ 백준 13546번: 수열과 쿼리 4 - Mo+제곱근분할

[Algorithm] C++ 백준 11408번: 열혈강호 5 - MCMF 최소비용 최대매칭

이 문제는 직원-일 이분 그래프에서 임금 비용을 최소화하며 가능한 한 많은 일을 배정하는 과제입니다. 최소 비용 최대 유량(MCMF)로 모델링하여 Dijkstra+잠재치(Johnson)로 음수 없는 보정 비용을 사용, 유량 1씩 확장하며 비용 합을 최소화합니다. 제약(N,M≤400, 임금≤10^4)에 맞춰 O(F·E·logV)로 안정적으로 통과합니다.
[Algorithm] C++ 백준 11408번: 열혈강호 5 - MCMF 최소비용 최대매칭

[Algorithm] C++ 백준 11012번: Egg - 2D 직사각형 쿼리 스위핑+BIT

n개의 점과 m개의 직사각형 [l,r]×[b,t]가 주어질 때, 각 직사각형 안의 점 개수를 모두 합한 값을 구한다. x를 기준으로 오프라인 스위핑을 수행하고, y는 좌표 압축 후 펜윅 트리(Fenwick Tree)로 누적 빈도를 관리한다. 쿼리는 (r,+1),(l-1,−1) 이벤트로 분해해 포함-배제를 구현하여 총합을 O((n+m) log n)에 계산한다. 64비트 누적, 경계(b=0) 처리, 중복 좌표 대응을 주의한다.
[Algorithm] C++ 백준 11012번: Egg - 2D 직사각형 쿼리 스위핑+BIT

[Algorithm] C++ 백준 10076번: 휴가 - 최적 풀이

IOI 2014 Holiday(휴가) 최적 풀이. 선형 도시에서 하루에 이동 또는 방문만 가능한 제약에서 방문 관광지 수를 최대화한다. 이동은 한 번의 방향 전환만 해도 충분하다는 관찰 아래 [l,r] 구간을 잡고 체류 가능일 g(l,r)을 계산한다. 분할정복+세그먼트 트리로 상위 k 합을 빠르게 질의하여 O(N log^2 N)로 해결한다. 경계·중복·음수 k 처리와 좌우 반전까지 구현 체크리스트 포함.
[Algorithm] C++ 백준 10076번: 휴가 - 최적 풀이

[Algorithm] C++ 백준 18586번 : Salty Fish

트리의 각 노드 사과를 모두 먹되, 카메라가 보는 구간(p(x,k))의 변화를 막기 위해 일부 카메라를 매수(비용 c)하거나 일부 정점을 포기하는 문제를 최소 컷으로 환원한다. 거대한 일반 네트워크 대신 트리 구조를 활용해 dp(map<depth,sum>)을 small-to-large로 병합하고, 카메라별 커버 가능한 가장 깊은 depth부터 잔여 유량을 소모해 Max-Flow=Min-Cut을 암시적으로 계산, 전체 사과 합 − 유량으로 최대 수익을 구한다. 시간복잡도는 O((n+m) log n)으로 테스트케이스 합 n,m ≤ 10^6에서도 빠르게 동작한다.
[Algorithm] C++ 백준 18586번 : Salty Fish

[Algorithm] C++ 백준 18438 번 : LCS 5

백준 18438 LCS 5는 최대 7000 길이의 두 문자열에 대해 LCS의 길이와 실제 수열을 모두 출력해야 하는 문제입니다. 4MB 메모리 제한 때문에 전형적인 2차원 DP 테이블을 저장할 수 없으므로, O(nm) 시간에 O(min(n,m)) 메모리만 사용하는 Hirschberg 알고리즘으로 안전하게 복원합니다. 전방·후방 1차원 DP, 분할 지점 선택, 경계 처리와 빠른 입출력까지 반영한 C++ 구현과 복잡도 분석을 제공합니다.
[Algorithm] C++ 백준 18438 번 : LCS 5

[Algorithm] C++ 백준 17955번 Max or Min

원형 배열에서 한 칸을 골라 인접 세 수의 최소/최대로 바꾸는 연산으로 모든 값을 x로 만드는 최소 시간을 구한다. 배열에 x가 없으면 불가능(-1). 인접 쌍마다 (min+1..max-1)에 1을 더하는 차분 누적으로 ‘그룹 수’를 집계하고, 시작점을 한 칸 회전한 두 번의 집계를 취해 중복을 보정한다. 정답은 (n - cnt[x]) + max(groups1[x], groups2[x])로 계산한다. O(n + m).
[Algorithm] C++ 백준 17955번 Max or Min

[Algorithm] C++ 백준 14737번 Dev, Please Add This!

격자에서 공을 상하좌우로 굴려 벽이나 가장자리에 닿을 때까지 이동하는 퍼즐에서, 모든 별을 하나의 플레이 순서로 획득할 수 있는지 판정한다. 단순 커버리지가 아니라 이동 순서 제약이 존재하므로 셀 단위 이동을 단방향 그래프로 모델링하고, 강한 연결 요소(SCC)로 압축한 DAG에서 상호 비가역(서로 도달 불가)한 컴포넌트 쌍의 동시 방문을 금지하는 제약과 각 별이 있는 칸의 행/열 중 하나의 정지 컴포넌트를 반드시 방문해야 한다는 제약을 2-SAT으로 구성해 모순 여부로 YES/NO를 결정한다. Kosaraju로 SCC를 구하고 DAG 도달성은 비트셋 DP로 처리하여 50×50까지 빠르게 동작한다.
[Algorithm] C++ 백준 14737번 Dev, Please Add This!

[Algorithm] C++ 백준 12898번 :Selling RNA Strands

백준 12898 Selling RNA Strands 문제를 접두사·접미사 조건을 각각 트라이 서브트리 구간으로 변환하고, 오일러 투어와 펜윅 트리(Fenwick/BIT)를 이용한 2D 직사각형 카운팅으로 M개의 질의를 빠르고 안정적으로 처리하는 C++ 풀이를 정리합니다. 대용량 입력을 위한 Fast I/O와 메모리 사용 최적화 포인트, 시간·공간 복잡도 분석까지 한 번에 확인할 수 있습니다.
[Algorithm] C++ 백준 12898번 :Selling RNA Strands

[Algorithm] C++ 백준 12736번 : Fireworks

백준 12736 Fireworks(APIO 2016)는 스위치-연결점-폭약으로 이루어진 트리에서 모든 폭약의 폭발 시각을 같게 만들기 위해 도화선 길이를 조정하는 최소 비용을 구하는 문제입니다. 볼록 함수(slope trick) 기반 트리 DP와 small-to-large 우선순위 큐 합병으로 O((N+M) log^2(N+M))에 해결합니다. 구현 핵심은 기울기 변화 지점을 우선순위 큐로 관리하고, 간선 통과 시 upperize 연산으로 기울기와 절편 변화를 반영하는 것입니다. 안전한 64-bit 정수 사용과 서브트리 크기 기준 정렬로 상수 시간을 줄여 AC를 얻습니다.
[Algorithm] C++ 백준 12736번 : Fireworks

[Algorithm] C++ 백준 3654번 : L퍼즐

격자에서 빈 칸을 L자 타일로 겹치지 않게 모두 덮을 수 있는지 판정하는 문제입니다. 그래프 모델링과 최대 유량(디닉) 알고리즘을 활용하여, 각 칸을 노드로 변환하고 L자 타일의 배치 가능성을 간선으로 연결해 해를 구합니다. C++로 효율적으로 구현하는 방법과, 이분 그래프, 유량 네트워크의 개념, 좌표 매핑 및 간선 구성 등 다양한 알고리즘적 아이디어를 다룹니다.
[Algorithm] C++ 백준 3654번 : L퍼즐

[Movie] Tangled (라푼젤) (2010) - 전통 동화의 현대적 재탄생과 자유를 향한 용기의 서사

Disney의 50번째 장편 애니메이션 Tangled는 그림 형제의 라푼젤을 혁신적 3D 기술로 재해석한 작품이다. 18년간 탑에 갇힌 공주의 자유를 향한 여정과 Flynn Rider와의 로맨스를 통해 자아 발견, 진정한 사랑, 과보호의 위험성을 그린다. $260M 제작비로 당시 최고가 애니메이션 기록을 세웠으며, 혁신적 hair simulation과 painterly rendering으로 animation 기술의 새 지평을 열었다.
[Movie] Tangled (라푼젤) (2010) - 전통 동화의 현대적 재탄생과 자유를 향한 용기의 서사

[Movie] Paddington (2014) - 다문화 사회의 포용과 따뜻함을 그린 완벽한 가족 영화

마이클 본드의 클래식 동화를 현대적으로 재해석한 폴 킹 감독의 패딩턴은 단순한 아동 영화를 넘어 다문화주의, 가족의 의미, 그리고 환대의 윤리학을 탐구하는 깊이 있는 작품이다. 실사와 CGI의 완벽한 조화, 영국적 유머의 정수, 그리고 현대 사회의 이민과 정착에 대한 은유적 서사를 통해 21세기 가족 영화의 새로운 패러다임을 제시한다.
[Movie] Paddington (2014) - 다문화 사회의 포용과 따뜻함을 그린 완벽한 가족 영화

[Software] FastStone Image Viewer 8.1 - 무료 이미지 뷰어의 완벽한 선택

FastStone Image Viewer 8.1은 빠른 속도와 안정성을 자랑하는 무료 이미지 browser, converter, editor이다. 다양한 이미지 format 지원, 직관적인 full-screen mode, 강력한 slideshow, EXIF 정보 확인, batch processing, red-eye removal, resizing, cropping, color adjustment 등 다양한 기능을 제공한다. Modern style의 Open/Save dialog, thumbnail 표시 옵션, 파일 위치 표시 등 최신 UI 개선도 포함되어 있다. 가정 사용자에게 무료로 제공되며, 초보자와 전문가 모두에게 적합한 이미지 관리 솔루션이다.
[Software] FastStone Image Viewer 8.1 - 무료 이미지 뷰어의 완벽한 선택

윈도잉(Windowing) 기법: 스트림 처리와 데이터 분석의 핵심

윈도잉(Windowing)은 스트림 데이터 처리에서 시간, 개수, 세션 등 다양한 기준으로 데이터를 그룹화하여 실시간 분석과 집계를 가능하게 하는 핵심 기술이다. Apache Kafka, Flink 등 주요 스트림 프로세싱 엔진에서 필수적으로 활용되며, 메모리 효율성과 패턴 인식, 시스템 부하 최적화에 중요한 역할을 한다. 본 가이드에서는 타임 윈도우, 슬라이딩 윈도우, 세션 윈도우 등 주요 윈도잉 유형과 실제 적용 사례, 성능 최적화 전략까지 체계적으로 설명한다.
윈도잉(Windowing) 기법: 스트림 처리와 데이터 분석의 핵심

[CMD] BatchGotAdmin 스크립트로 Windows 관리자 권한 획득하기

Windows 환경에서 배치 파일(.bat)이 관리자 권한(Administrator Privilege)을 자동으로 요청하도록 하는 BatchGotAdmin 스크립트의 원리와 실제 동작 과정을 상세히 설명한다. UAC(User Account Control) 동작 방식, 스크립트 내부 구조, 실전 적용 방법, 주의사항까지 단계별로 안내하여, Windows 시스템 관리 자동화에 실질적으로 활용할 수 있도록 돕는다.
[CMD] BatchGotAdmin 스크립트로 Windows 관리자 권한 획득하기

[Torrent] 토렌트 다운로드 완료 후 자동 파일 정리 스크립트

토렌트 다운로드 완료 후 자동으로 파일을 정리하는 Python 스크립트에 대한 설명이다. 미디어 파일(.mkv, .mp4)과 압축 파일(.rar)을 자동으로 분류하고, 지정된 폴더로 이동시키며, 압축 해제를 수행하는 기능을 제공한다. 작업 과정은 상세한 로그로 기록되며, 디스크 사용량을 모니터링하여 안정적인 파일 처리를 보장한다.
[Torrent] 토렌트 다운로드 완료 후 자동 파일 정리 스크립트

[Programming] HTML은 프로그래밍 언어인가? html-lang.org을 바탕으로 생각해보기

HTML은 전통적으로 마크업 언어로 분류되지만, html-lang.org는 HTML을 프로그래밍 언어로 재해석하는 접근법을 제시한다. 이 사이트는 사용자 입력을 처리하고, HTML 태그를 통해 프로그래밍 구성 요소를 표현하는 기능을 포함하고 있다. 이러한 접근은 HTML의 선언적 특성을 유지하면서도 프로그래밍 언어의 핵심 기능을 통합하려는 시도로, HTML이 단순한 마크업 언어에서 벗어나 계산 능력을 갖춘 언어로 확장될 가능성을 제시한다.
[Programming] HTML은 프로그래밍 언어인가? html-lang.org을 바탕으로 생각해보기

[Data Structure] C#에서의 Lock-Free 우선순위 큐 구현

동시성 프로그래밍에서 우선순위 큐는 중요한 자료구조로, 멀티스레드 환경에서 lock-free하고 thread-safe하게 구현하는 것이 필수적이다. 이 보고서는 C#에서 우선순위 큐를 구현하는 방법과 관련 개념, 문제 해결 기법을 다룬다. 우선순위 큐는 FIFO 큐와 달리 각 요소에 우선순위를 부여하여 처리 순서를 조정할 수 있는 장점이 있다.
[Data Structure] C#에서의 Lock-Free 우선순위 큐 구현

[KVM] 라즈베리 파이 기반 오픈 소스 IP-KVM 솔루션 PiKVM 소개

PiKVM은 라즈베리 파이 기반의 오픈소스 원격 서버 관리 솔루션이다. 1080P 초저지연 스트리밍, H.264 하드웨어 인코딩, WebRTC 프로토콜을 통해 BIOS 레벨의 원격 제어가 가능하다. NVMe 가상화 및 확장형 네트워크 관리 기능을 제공하며 IPMI/Redfish API 호환성을 갖췄다. DIY 방식을 통한 커스터마이징이 가능하고 기존 상용 솔루션 대비 1/10 비용으로 데이터센터급 관리 기능을 구현한다.
[KVM] 라즈베리 파이 기반 오픈 소스 IP-KVM 솔루션 PiKVM 소개

[Algorithm] C++/Python 백준 24505번 : blobhyperthink

이 글에서는 백준 24505번 'blobhyperthink' 문제를 C++ 및 Python을 활용해 효율적으로 푸는 방법을 다룹니다. 최대 10^5 길이의 수열에서 길이가 11인 증가 부분 수열의 개수를 구하기 위해 동적 계획법과 Binary Indexed Tree(Fenwick Tree)를 활용하는 자세한 알고리즘 설계 및 최적화 과정을, 시간 복잡도와 실제 코드 구현과 함께 150자 내외로 명확하게 설명합니다.
[Algorithm] C++/Python 백준 24505번 : blobhyperthink

[Algorithm] C++/Python 백준 1126번 : 같은 탑

백준 1126번 '같은 탑' 문제는 여러 블록을 이용해 두 탑의 높이를 동일하게 만들되 가장 높은 탑의 높이를 최대화하는 최적화 문제입니다. 동적 계획법(DP)을 활용하여 두 탑의 높이 차이와 누적 높이를 효율적으로 관리하며, 상태 전이와 초기화 방안, 구현 방법을 상세하게 다룹니다. 본 글은 C++/Python 예제 코드 및 핵심 아이디어를 포함하여 문제 해결에 필요한 핵심 로직과 최적화 전략을 설명합니다.
[Algorithm] C++/Python 백준 1126번 : 같은 탑

[Algorithm] C++/Python 백준 16978번 : 수열과 쿼리 22

백준 16978번 문제는 여러 버전의 수열 상태에서 구간 합 쿼리와 값을 갱신하는 쿼리를 빠르게 처리해야 합니다. 이를 위해 영속적 세그먼트 트리(Persistent Segment Tree)를 활용하여, 각 업데이트마다 새로운 버전을 효율적으로 관리하며, 원하는 시점의 구간 합을 O(log N)에 계산할 수 있습니다. 본 글에서는 문제의 요구사항, 제한 사항, 데이터 구조의 원리와 구현 방법을 상세히 설명합니다.
[Algorithm] C++/Python 백준 16978번 : 수열과 쿼리 22

[Algorithm] C++/Python 백준 2166번 : 다각형의 면적

백준 2166번 다각형의 면적 문제는 2차원 평면 위에 주어진 N개의 정점 정보를 기반으로 Shoelace(신발끈) 공식을 활용하여 임의 다각형의 넓이를 정확하고 효율적으로 구하는 기초 기하 알고리즘 문제이다. C++ 및 Python 예제와 함께 절댓값 처리, 입출력, 오버플로우 방지 등 실제 구현의 핵심 요소 및 실수 방지 전략을 상세히 해설한다.
[Algorithm] C++/Python 백준 2166번 : 다각형의 면적

2024

[EvolutionaryBiology] 붉은 여왕 효과: 끊임없는 진화의 경쟁

붉은 여왕 효과(Red Queen Effect)는 생물들이 환경과의 경쟁적 상호작용 속에서 진화적 균형을 유지하기 위해 끊임없이 적응해야 함을 설명하는 이론입니다. 숙주-기생충, 포식자-피식자처럼 서로 영향을 주고받는 관계에서 나타나는 필연적인 진화 경쟁의 본질을 다루며, 실제 자연계와 인간 사회의 다양한 생태·경제 현상에 적용되는 중요한 진화 생물학 개념입니다.
[EvolutionaryBiology] 붉은 여왕 효과: 끊임없는 진화의 경쟁

[Algorithm] C++/Python 백준 1671번 : 상어의 저녁식사

백준 1671번 상어의 저녁식사 문제는 각 상어의 능력치(크기, 속도, 지능)에 따라 상호 포식 관계를 모델링하고, 한 상어가 최대 두 마리까지 다른 상어를 잡아먹을 수 있다는 제약조건을 적용해 최적의 생존 상어 수를 구하는 이분 매칭 알고리즘 문제입니다. 매칭 과정을 통해 생존 상어의 최소 개수를 도출하며, 비교 및 구현 과정에 그래프와 매칭 알고리즘의 이해가 필수적입니다.
[Algorithm] C++/Python 백준 1671번 : 상어의 저녁식사

[technology] Huyen Chip 블로그 소개

이 포스트에서는 스탠포드 강사이자 머신러닝 시스템 분야 전문가인 Huyen Chip의 블로그를 상세히 소개합니다. 그녀의 기술적 통찰, 커리어 조언, 머신러닝 및 AI 관련 실무와 연구 경험, 추천 학습 리소스, 그리고 글로벌 관점에서 바라본 IT 업계 변화와 혁신까지 다양한 내용을 150자 분량으로 정리하여 독자들에게 유익한 정보를 제공합니다.
[technology] Huyen Chip 블로그 소개

[Algorithm] C++/Python 백준 4792번 : 레드 블루 스패닝 트리

백준 4792번 레드 블루 스패닝 트리는 무방향 그래프에서 각 간선 색이 빨강 또는 파랑일 때, 파란 간선이 정확히 k개인 스패닝 트리의 존재 여부를 Kruskal 변형, MST와 Union-Find로 판별하는 문제로, 최소·최대 파란 간선 개수 범위 내 k의 포함 여부를 통해 풀이하며 색 기준 정렬 및 트리 구성 원리를 묻는 대표적 문제입니다.
[Algorithm] C++/Python 백준 4792번 : 레드 블루 스패닝 트리

[Algorithm] C++/Python 백준 12928번 : 트리와 경로의 길이

백준 12928번 트리와 경로의 길이 문제는 N개의 노드와 정확히 S개의 길이가 2인 단순 경로를 갖는 트리의 존재 여부를 판별하는 수학+DP 문제입니다. 각 노드의 차수 분배와 경로 수식 변형을 통해 조건을 수식화하고, N과 S가 작으므로 다이나믹 프로그래밍을 활용해 차수 배치가 충족되는지를 탐색합니다. 수학적 귀납 및 조합 원리를 바탕으로 효율적인 검사를 수행하는 것이 핵심입니다.
[Algorithm] C++/Python 백준 12928번 : 트리와 경로의 길이

[HTML] HTML을 활용한 데이터 탐색과 분석

본 글은 HTML을 이용한 데이터 탐색, 분석, 시각화 및 프로그래밍 노트북 구현 방법을 상세히 소개합니다. Pyodide, WebR 등 최신 기술과 contenteditable, Observable, Hypertext Literal(HTL) 등의 활용법을 다루며, HTML 기반의 반응형 데이터 분석 환경을 직접 구축하고 관련 기술과의 차이점, 활용 사례, 실무 적용 방안까지 안내합니다. 초보자와 기존 Jupyter, LaTeX 사용자 모두에게 도움이 되도록 실용적 예시와 함께 설명합니다.
[HTML] HTML을 활용한 데이터 탐색과 분석

[ComputerScience] 알론조 처치: 컴퓨터 과학의 숨은 거장

알론조 처치는 람다 계산법, 처치-튜링 논제, 결정문제 연구 등 컴퓨터 과학과 논리학의 토대를 마련한 천재 수학자입니다. 그는 튜링, 괴델, 폰 노이만 등과의 교류, 그리고 소박한 삶에도 불구하고 남긴 이론적 업적을 통해 계산 이론, 인공지능, 프로그래밍 언어 연구 등 다양한 분야에 깊은 영향을 끼쳤으며, 그의 조용한 천재성은 오늘날까지 이어지고 있습니다.
[ComputerScience] 알론조 처치: 컴퓨터 과학의 숨은 거장

[Algorithm] C++/Python 백준 2975번 : Transactions 다국어

이 문제는 은행의 ATM을 통한 예금과 출금 거래를 시뮬레이션하면서, 과도한 출금으로 인해 잔액이 –200 이하로 떨어지지 않도록 규칙을 적용해 거래 결과를 출력하는 시뮬레이션 문제입니다. 각 입력 거래를 차례대로 처리해서 잔액 변화 및 제한 조건에 따라 올바른 결과를 출력해야 하며 입력의 종료 조건과 형식에 유의해야 합니다.
[Algorithm] C++/Python 백준 2975번 : Transactions 다국어

[Algorithm] C++/Python 백준 1225번 : 이상한 곱셈

백준 1225번 '이상한 곱셈' 문제는 두 개의 매우 큰 숫자가 주어졌을 때, 각 자리 숫자를 곱해 가능한 모든 조합의 합을 구하는 알고리즘을 구현합니다. 수학적 특성을 활용하여, 각 숫자의 자릿수 합을 곱하는 방식으로 효율적으로 해결하는 방법을 알아봅니다. 시간 복잡도를 낮추는 최적화 아이디어와 실제 C++/Python 코드를 통해 설명합니다.
[Algorithm] C++/Python 백준 1225번 : 이상한 곱셈

[Algorithm] C++/Python 백준 5342번 : Billing 다국어

백준 5342번 Billing 다국어 문제는 여러 사무용품 이름을 다양한 언어로 입력받아 각 품목의 비용을 합산해 총 비용을 계산하는 구현 문제입니다. 항목의 이름과 가격 정보를 사전에 저장하고, 입력을 하나씩 처리하면서 결과를 실수형으로 정확하게 출력하는 것이 요구됩니다. 입력 종료는 'EOI'로 구분하며, 모든 비용 합계는 달러 기호 및 소수점 둘째 자리까지 표시해야 합니다.
[Algorithm] C++/Python 백준 5342번 : Billing 다국어

[Algorithm] C++/Python 백준 2711번 : 오타맨 고창영

백준 2711번 오타맨 고창영 문제는 주어진 문자열에서 특정 위치의 오타를 제거해 올바른 문자열로 복구하는 단순 구현 문제입니다. 입력 형식 파싱, 인덱스 조정, 문자열 처리 등을 연습할 수 있으며, 테스트 케이스마다 1-based 위치로 오타 문자를 제외한 결과 문자열을 출력해야 하는 것이 특징입니다. C++/Python의 슬라이싱, 문자열 조작 기법에 대한 이해를 향상시킬 수 있습니다.
[Algorithm] C++/Python 백준 2711번 : 오타맨 고창영

[Algorithm] C++/Python 백준 24051번 : 알고리즘 수업 - 삽입 정렬 1

백준 24051번 문제를 통해 삽입 정렬 알고리즘의 과정을 단계별로 시뮬레이션하며 각 저장 연산을 추적하고, 주어진 K번째 저장되는 값을 찾는 방법을 상세하게 설명합니다. 문제 접근법, 핵심 구현 포인트, 입출력 예시, 주요 코드와 함께 삽입 정렬의 동작 과정 및 실전 응용법까지 학습할 수 있는 실용적인 풀이 가이드입니다.
[Algorithm] C++/Python 백준 24051번 : 알고리즘 수업 - 삽입 정렬 1

[Algorithm] C++/Python 백준 1384번 : 메시지

백준 1384번 메시지 문제는 여러 명의 학생들이 원형으로 앉아 종이와 메시지를 주고받으며, 누가 누구에게 나쁜 말을 했는지를 추적하는 구현/시뮬레이션 문제입니다. 입력 형식을 파싱하고, 메시지 작성자 및 수신자를 정확히 추적하는 로직을 구현하여, 나쁜 메시지가 발생한 경우 그 기록을 결과로 출력하는 것이 핵심입니다. 원형 구조 처리 및 인덱스 연산을 통해 전체 메시지 전달 과정을 체계적으로 시뮬레이션해야 하고, 문제에서 요구하는 출력 양식을 맞추는 것이 중요합니다.
[Algorithm] C++/Python 백준 1384번 : 메시지

[Algorithm] C++/Python 백준 13334번 : 철로

백준 13334 철로 문제는 우선순위 큐와 그리디, 스위핑 기법을 활용해, 주어진 길이의 구간 안에 가장 많은 집-사무실 쌍이 포함되도록 최적 구간을 찾는 알고리즘 문제입니다. 각 사람의 위치 정보를 인터벌로 변환하고, 효율적인 정렬과 우선순위 큐(최소 힙) 관리로 시간복잡도를 개선하는 방법을 다루며, 실제 문제 상황에서 빠른 최적 커버링 알고리즘 구현 연습에 적합합니다.
[Algorithm] C++/Python 백준 13334번 : 철로

[Algorithm] C++/Python 백준 11505번 : 구간 곱 구하기

백준 11505번 구간 곱 구하기 문제는 수의 변경과 구간 곱 계산이 빈번한 대규모 수열에서 효율적으로 쿼리를 처리하는 알고리즘을 다룹니다. 세그먼트 트리를 활용해 구간 곱 쿼리와 갱신 연산을 모두 O(log N)에 해결하며, 잘못된 곱셈 및 오버플로우를 피하기 위해 모듈러 연산(1,000,000,007)을 적재적소에 적용합니다. 대규모 입력 데이터에도 빠르게 대응하는 실전 알고리즘 문제로, 자료구조 설계와 연산 최적화, 수학적 예외 처리를 모두 경험할 수 있습니다.
[Algorithm] C++/Python 백준 11505번 : 구간 곱 구하기

[Algorithm] C++/Python 백준 2618번 : 경찰차

백준 2618번 경찰차 문제는 동적 계획법(DP)을 활용해 두 대의 경찰차가 격자 도시 내 다수의 사건을 최적으로 분담하도록 이동 경로를 결정한다. 경찰차 각각의 마지막 위치 및 사건 담당 순서에 따른 최소 이동 거리 조합을 탐색하며, 메모이제이션과 상태 전이 설계, 그리고 최적 경로 추적에 대한 세부 구현 원리와 코드를 상세 설명한다.
[Algorithm] C++/Python 백준 2618번 : 경찰차

[Database] 트랜잭션과 ACID의 이해

ACID는 데이터베이스 트랜잭션의 신뢰성과 일관성을 보장하는 네 가지 핵심 속성으로, 각 속성은 원자성, 일관성, 고립성, 지속성을 의미합니다. 이 글에서는 ACID의 각 요소를 실제 데이터베이스 시스템에서 어떻게 구현하고 보장하는지, 각 속성이 깨졌을 때 발생할 수 있는 문제와 방지 방안을 구체적으로 설명합니다. 데이터베이스 신뢰성, 장애 복구, 트랜잭션 관리에 대한 실질적인 이해를 돕고 트랜잭션 시스템 설계 시 고려할 점과 최선의 실천 방안도 함께 제시합니다.
[Database] 트랜잭션과 ACID의 이해

[Technology] CRDT(Conflict-Free Replicated Data Types)란

CRDT(Conflict-Free Replicated Data Types)는 분산 시스템에서 데이터의 동시성, 일관성, 자동 병합을 보장하는 자료구조입니다. 협업 편집, 실시간 동기화, 네트워크 분리와 병합 등 다양한 분야에서 활용되며, OT와의 차이점, 상태 기반 및 연산 기반 모델, 주요 알고리즘, 대표 사용 사례 및 구현상 이슈까지 150자 내외로 자세히 설명합니다.
[Technology] CRDT(Conflict-Free Replicated Data Types)란

[Algorithm] C++/Python 백준 11375번 : 열혈강호

백준 11375번 '열혈강호'는 직원-작업 매칭 문제로, 이분 그래프에서 최대 매칭을 구하는 DFS 기반 알고리즘을 효율적으로 설계하는 데 중점을 둔다. 각 직원에게 한 개 작업만 배정할 수 있고, 모든 작업은 반드시 담당자를 가져야 하므로, 실제 네트워크 플로우 및 이분 매칭의 원리와 DFS 수행 로직을 이해하는 데 좋은 예제다. 본문에서는 문제 풀이 전략, 최적화 방법, 구현 시 주의점과 함께 C++ 및 Python 코드를 단계별로 설명한다.
[Algorithm] C++/Python 백준 11375번 : 열혈강호

[Algorithm] C++/Python 백준 1214번 : 쿨한 물건 구매

백준 1214번 쿨한 물건 구매 문제는 두 종류의 지폐만으로 주어진 금액 이상을 최소로 지불하는 조합을 찾는 알고리즘 문제입니다. 무한대로 주어진 P, Q 원 지폐를 조합하여 최소 금액을 만드는 최적화와 수학적 접근, 시간복잡도 개선을 연습할 수 있습니다. 효율적으로 구현하여 큰 수 범위에서도 동작하도록 설계해야 합니다.
[Algorithm] C++/Python 백준 1214번 : 쿨한 물건 구매

2023

[Serverless] 서버리스 모놀리스의 등장: 소프트웨어 아키텍처의 새로운 패러다임

서버리스 모놀리스는 기존 모놀리식 소프트웨어와 서버리스 아키텍처의 장점을 결합한 새로운 패러다임입니다. 본 글에서는 서버리스 모놀리스의 개념, 등장 배경, 주요 특징, 그리고 이 방식이 소프트웨어 개발과 아키텍처에 미치는 영향 및 미래 전망에 대해 쉽게 이해할 수 있도록 설명합니다.
[Serverless] 서버리스 모놀리스의 등장: 소프트웨어 아키텍처의 새로운 패러다임

2022

[Algorithm] C++ 백준 8983번 : 사냥꾼

이 문제는 x축에 놓인 여러 사대를 이용해 2차원 평면상의 동물을 사정거리 내에서 사냥할 수 있는 최대 동물의 수를 계산하는 알고리즘 문제입니다. 각 동물이 사대 중 하나라도 사정거리 내에 있다면 잡을 수 있고, 효율적인 이분 탐색으로 빠른 판별이 가능하여 탐색 최적화와 수학적 거리 계산, 정렬, 탐색 알고리즘의 응용을 함께 익힐 수 있습니다.
[Algorithm] C++ 백준 8983번 : 사냥꾼

2021

2019