Computer Science(17)
-
R.I.P 백준
내 PS....이제 어디로 가야하오..
2026.04.16 -
암시적 그래프 구현과 명시적 그래프 구현
Explict Graph데이터를 저장할 공간을 직접 할당하여 정점과 간선을 기록하는 방식이다.인접 행렬, 인접 리스트, 포인터 기반 연결 리스트를 통해서 직접 데이터를 구현하는 방식.A와 B가 연결되어있다라는 정보를 메모리에 물리적으로 저장하는 셈이다.노드간의 관계를 직관적으로 파악할 수 있으나, 노드 수가 많아질수록 메모리 사용량이 아작난다. (O(V^2))Implict Graph데이터를 저장하는 데신, Rule/Function/Numbers...등을 통해 실시간으로 간선을 계산하는 방식이다.수식이나 조건문을 이용해서 "표현"한다.메모리에 간선 정보를 저장하지 않고, 탐색 과정에서 "다음 노드는 어디인가?"를 로직으로 산출한다.메모리 효율이 아-주 좋고, Locality가 보장됨에 따라 Cache hi..
2026.04.15 -
이진 탐색과 매개변수 탐색
5개월이라는 시간이 흐르면 자료구조/알고리즘 기억해 놨던게 사라지는 기현상이 있어서... 이진 탐색과 매개변수 탐색에 대해 이야기를 해보려고 한다. 사실 Binary Search는 구현 자체는 크게 어렵지도 않고, 개념적으로도 마찬가지로 어렵지도 않다. 업다운 게임을 생각해 보면 편한데, 1~100까지 수 중에 하나를 고르라 하면 50이 먼저 나올게 당연한 것 아닌가? 마찬가지로 이진 탐색도 정렬되어 있는 수 중에서 (혹은 범위가 지정되어 있는 수 중에서) Up-Down 게임을 열심히 지지고 볶으면 된다. 물론 이진 탐색의 경우 수 중에서 "해당 값"이 반드시 존재하는 경우에 사용하고, 만약 "범위"로 검색하고 싶으면 매개변수 탐색이라는 것을 동원해야 한다. #include #include using ..
2026.04.13 -
CPP26 공식 채택
ISO 위원회가 CPP26을 발표했습니다. 물론 위대한 클로드님과 제미나이님께서 개발자들을 대체하는 상황에서 의미가 있겠나 싶지만.... 쨋든 혁신적이라면 아주 혁신적인 내용이 대거 포함되어 있습니다. Reflection대충 언어가 자기 자신을 기술하고, 그 정보를 바탕으로 코드를 생성할 수 있게 되었습니다. 그니까 정확히 무슨소리냐면, Serialization같은걸 예전에는 매크로나 Qt MOC등에 던져서 했다면 이제는 언어 자체가 이걸 수행한다는 얘기입니다. 쉽게 말하면 프로그램이 자기의 구조(type, field, function 등)을 Introspection(자기 관찰)할 수 있게 되었다는 겁니다. 사실 예전에는 Reflection이라고 해봤자 RTTI(Run TIme Type Informati..
2026.03.31 -
ML에서 특성 스케일 맞추기
Decision Tree나 Random Forest가 아닌 이상, 스케일링은 아주 중요한 작업입니다. 대부분의 ML과 최적화 알고리즘은 특성의 스케일이 비스므리 할때 훨씬 성능이 좋기 때문입니다. 뭔소리냐면, 한 속성은 char타입이고 다른 얘가 int타입이라 치면 range 범위 차이가 장난 아니게 납니다. 그걸 그대로 MSE에 가져다 박는다 치면 알고리즘은 두번째 특성의 영향을 정말로 무지막지하게 받게 될 것입니다. 해서 스케일이 다른 특성을 맞추는 방법으로는 대표적으로 Normalization과 Standardization이 있습니다. 먼저 대부분 정규화의 경우는 특성의 스케일을 [0, 1] 범위에 맞추는 것을 말하는데 - 그냥 min-max Scaling을 생각하면 편합니다. 이 친구는 정해..
2025.12.26 -
ML에서 누락된 데이터를 다루기
실제 데이터를 만지다 보면, 뜬금 없는 이유로 샘플에 값이 텅텅 비어 있는 경우가 있습니다. 아니면 인풋으로 1000Row를 고정해 놨는데, 정작 찍힌건 973개 밖에 없다거나 하는 식으로요...(하필 시계열 데이터여서 이걸 어떻게 해야되나 심각하게 고민했었던 기억이 있네요.) 해서 빌어먹을 누락 데이터를 어떻게 다뤄야 할지 논의좀 해보겠습니다. 일반적으로 누락된 값은 NaN(Not a Number)나 NULL과 같은 값을 사용합니다. 물론 샘플에 이게 박혀 있으면 끔찍하기 따로 없죠. 그래서 방법은 여러가지가 있는데, 일단 무식하게 1. 누락값 샘플 숙청누락 데이터를 다루는 가장 쉬운 방법입니다. df.dropna와 같은 메서드를 사용하여 쉽게 누락값이 있는 행/열(axix=0/1)을 숙청할 수 있습니..
2025.12.25