-
data science 기초
Data Science 의 기초 contents what is data science? ready to start analysis feature check outliers PCA linear regression conclusion what is data science? 데이터 과학이란? 이번 주제에서는 데이터 과학이라는 분야를 다뤄보고자 한다. 딥러닝이 현재 큰 인기와 관심이 주목된 가운데, 데이터과학의 중요도 또한 크게 중요해지고 있다. 데이터들이 중요한 이유는 무엇일까? AI(인공지능)는 learning 을 통해서 자신의 내부 computation을 견고하게 만들고, 그 learning은 다름이 아닌 data들의 집합을 통해서 이루어진다. 여러가지 예를 들 수 있겠지만 image classification 이라는...
-
알고리즘 문제 풀이 3
알고리즘 문제 풀이 3 최근에 푼 재미있는 문제들을 포스팅 해보겠습니다. BOJ 1066번 에이한수 각 자리수를 등차 수열을 이루는 연속한 수들끼리 묶어서 $A$ 개의 그룹으로 나눌 수 있으면 $A$-한수 라고 할때, $A$-한수 이고 $(A - 1)$-한수가 아니면서 각 자리수가 비내림차순인 $N$ 자리 자연수의 개수를 구하는 문제입니다. 다음과 같은 사실을 관찰해 봅시다. $A$-한 수 이고 $A < N$ 이면 $(A + 1)$-한 수이기도 하다. 위와 같은 사실이 성립하는 이유는 $A < N$ 이기 때문에 적어도 한 그룹에는...
-
번사이드 보조정리(Burnside Lemma)
서론 Burnside Lemma(번사이드 보조정리)는 Group action에서 나오는 정리입니다. 여기서 말하는 Group이란 대수학에서의 Group을 의미합니다. Competitive Programming에서 아주 가끔씩 경우의 수를 세는 문제에서 활용이 되나 객관적으로 나올 확률은 굉장히 낮다고 볼 수 있습니다. 이 글 자체는 Group Theory의 기초부터 차근차근 설명을 할 예정이지만 만약 Group Theory에 대해 이전에 전혀 공부를 한 적이 없다면 안타깝게도 이론적 배경을 이해하는 것이 불가능에 가까울 것입니다. 대신 이론적 배경을 이해하지 않고 하단의 실제 문제에서 Burnside Lemma를 사용하는 예시만을 익혀두어도 괜찮습니다. 배경...
-
Boost.Exception 소개
안녕하세요~ 오늘은 Boost.Exception 에 대해서 간단하게 소개해볼까 합니다. » 이 글을 좀 더 좋은 가독성으로 읽기 « Boost.Exception 이란? Boost.Exception 은 예외 계층을 설계하고 예외 핸들링을 수행할 때 도움을 주는 라이브러리입니다. 제가 Boost.Exception 을 사용하면서 얻을 수 있었던 이점은 다음과 같습니다. 예외가 발생한 시점의 소스파일 이름, 라인 넘버, 함수명을 예외 객체에 쉽고 편하게 담을 수 있습니다. throw std::exception() 대신에 BOOST_THROW_EXCEPTION(std::exception()) 을 사용하면 std::exception 을 wrapping 하는 예외 객체가 만들어지고 그 안에 소스파일 이름, 라인 넘버,...
-
Python의 큰 정수 표현법 1
개요 대부분의 프로그래밍 언어, 특히 거의 모든 저레벨 언어에는 정수형 크기에 제한이 있습니다. 대체로 바이트 단위로 끊어서 1바이트, 2바이트, 4바이트, 8바이트 정도의 정수형들을 사용할 수 있고, 언어와 컴파일러에 따라서는 16바이트 정수형이 제공되기도 합니다. 이와 같은 제한은 현대 프로세서들의 연산 능력을 고려하여 디자인된 것이라고 할 수 있습니다. 최근까지도 32비트/64비트 프로세서들이 주류를 이루고 있고, 이는 곧 프로세서가 연산을 수행하는 레지스터의 크기가 4/8바이트 정도이며 한 번의 연산 단위가 될 수 있다는 뜻이 됩니다. 따라서 이 크기에 맞추어 자료형을...