지난주 토요일에 있었던 Google Codejam이라는 알고리즘 대회에 참가했다. tourist의 연금을 위한 대회지만, 알고리즘을 본격적으로 공부하고, 연습하는 느낌으로 참가했다. 문제는 대체적으로 쉬웠다. 하지만 마지막 interactive문제는 할 줄 몰라서 못 풀었다. 실력의 부족함을 느낀다.. 여하튼 내가 푼 대로 문제 풀이를 진행해보겠다. Foregone Solution Problem Someone just won the Code Jam lottery, and we owe them **N** jamcoins! However, when we tried to print out an oversized check, we encountered a problem. The value of **N**, wh..
최근에 영어 논문을 읽어야 하는 경우가 늘어났다.물론 한국어라는 좁은 검색망으로는 찾을 수 있는 정보량이 적기 때문이기도 하다. 나는 부족한 영어 실력 탓인지 번역기를 자주 사용하는 편이다.하지만 복사하고 붙여넣고 번역 버튼 누르고,나만 불편한지 모르겠으나.. 개인적으로 많이 불편했다. 이러한 번거로움을 해결하고자, 모르는 문장을 복사하면 바로 번역 결과가 나오는시스템 어플리케이션을 개발하기로 결심했다. 일단은 전체적인 3가지의 과정으로 나누어진다.1. 복사한 클립 보드의 내용을 가져온다.2. 복사한 내용을 번역한 결과를 가져온다.3. 번역한 결과를 내가 보기 좋게 출력해준다....사실 그렇게 어려운 처리 과정은 아니니깐 바로 시작해보자. 클립 보드의 내용을 가져오는 것은 pyperclip이라는 모듈을 ..
최근에 모든 점으로부터 거리의 합이 최소가 되게 하는 점 (geometric median)에 대해 연구하다가,모든 점으로부터 거리의 제곱의 합이 최소가 되게 하는 점 (geometric mean)을 증명하게 되었다. 보통 우리는 geometric mean을 무게 중심(center of mass)이라고 말한다.그래서 geometric mean이 왜 center of mass인지, 그리고 이 geometric mean이 geometric median에 어떤 영향을 줄 수 있을지 궁금하기도 했다. 그래서 과연 geometric mean이 왜 center of mass일까?다음 그림은 여러분의 상상력을 위한 참고용 그림이다.위의 그림이 아래의 수식에는 영향을 주진 않지만, 수식을 상상하는데 도움을 줄 것이다. ..
IA-32에는 여러가지 레지스터가 존재한다.그래서 이번 포스팅에서는 앞으로 자주 사용하게 될 레지스터들인, Basic program execution registers에 대해서 알아보자. Basic program execution registers은 다음과 같이 크게 4가지로 더 나눌 수 있다. General Purpose RegistersSegment RegisterEFLAGSInstruction Pointer 먼저 범용 레지스터(General Purpose Registers)에 대해서 알아보도록 하자.범용 레지스터는 이름대로 범용적으로 사용되는 레지스터로,상수나 주소를 저장할 때나 특정 레지스터를 조작할 때 사용한다.각 레지스터가 32bit의 크기를 갖는다.EAX (Accumulator for ope..