Posts

나의 글쓰기 도구 변천사

그간 생각을 정리하려고 꾸준히 노력했다. 갑자기 떠오른 아이디어, 새롭게 배운 지식, 책에서 본 마음에 드는 구절, 이것 저것에 대한 잡생각 등 마음만 먹으면 쓸 거리는 넘쳐난다. 자발적으로 작성하는 문서는 모두 미래의 나를 위한 것이다. 그냥 보관하는 것이든 블로그에 공개하는 것이든 다른 사람에게 보여주기 보다는 내가 잊지 않으려고 정리하는 것이다. 그동안 글을 쓰는 데 여러 도구를 사용했다. 어떤 도구를 거쳐 지금에 이르렀는지 정리하는 것도 재미있을 것 같다.

Read more...

프로젝트 오일러 70

φ(n)이 n의 순열이 되는 수 조사하기

문제 자세히 보기: [국어] [영어]

\phi(n) n 의 순열이 되는 수 중에서 n/\phi(n) 이 최소가 되는 n 을 구해야 한다. n/\phi(n) 이 다음과 같이 표현될 수 있음을 문제 69에서 확인했다.

%math \begin{aligned} \frac{n}{\phi(n)} = \frac{1}{\prod_{p|n}\left(1-\frac{1}{p}\right)} \end{aligned}

Read more...

프로젝트 오일러 69

n/φ(n)이 최대가 되는 1백만 이하의 n 찾기

문제 자세히 보기: [국어] [영어]

Euler's totient function을 보면 \phi(n) 의 공식을 확인할 수 있다. \phi(n) 을 구하려면 n 의 모든 소수 약수를 하나씩 넣어가며 곱을 수행해야 한다.

%math \require{cancel} \begin{aligned} \phi(n) = n \prod_{p|n}\left(1-\frac{1}{p}\right) \end{aligned}

Read more...

아마존에서의 첫 작업

입사한 지 두 달 만에 의미 있는 일을 하게 되었다. 새로운 프로젝트에서 사용할 메트릭 라이브러리를 만드는 작업이었다. 서비스가 호출될 때 또는 서비스 내에서 다른 다운스트림 서비스를 호출할 때 메트릭 정보를 남겨두면 모니터링 도구를 이용해 서비스가 호출된 횟수, 요청을 처리하는 데 걸린 시간, 다운스트림 서비스를 호출하는 데 걸린 시간, 오류 발생 빈도 등을 확인할 수 있다. 아마존은 이미 이런 작업을 위한 내부 도구를 갖추고 있다. 메트릭 정보를 기록하는 라이브러리도 있다. 내가 할 일은 우리 팀에서 새로 개발할 서비스에서 메트릭 정보를 쉽게 남길 수 있게 하는 라이브러리를 만드는 일이었다.

Read more...

과도한 AB 테스트

AB 테스트에 대한 글을 읽으면, 간단한 문구 수정이나 버튼 색상 변경 만으로도 전환율이 몇 배 이상 높아졌다, 매출이 몇 십 퍼센트 늘어났다는 주장을 쉽게 볼 수 있다. 단순한 변경만으로 그런 극적인 효과를 얻을 수 있다는 게 미덥지 않지만, 어떤 변경이 긍정적 효과를 주는지 확인하는 수단으로 AB 테스트는 좋은 방법이다.

Read more...

프로젝트 오일러 68

마방진 성질을 갖는 5각 도형에서 얻을 수 있는 16자리 수의 최대값 구하기

문제 자세히 보기: [국어] [영어]

5각 도형의 빈 칸을 다음과 같이 a, b, ..., j 로 지정할 수 있다.

문제 그림

Read more...

프로젝트 오일러 67

삼각형에서 경로의 합 중 최대값을 구하는 효율적인 방법은?

문제 자세히 보기: [국어] [영어]

문제 18과 동일한 문제다. 문제 18에서는 삼각형이 15층에 불과했지만, 여기서는 100층이다. 문제 18에서 이미 제대로 된 방법으로 문제를 풀었기 때문에 똑같은 방법을 사용해 문제를 풀 수 있다. 텍스트 파일로 주어진 데이터를 읽어들이는 코드만 추가해주면 된다.

Read more...

영국 운전면허 교환

국제운전면허증이 있다면 영국에서 운전하는 것이 가능하지만, 국제운전면허증은 유효기간이 1년밖에 되지 않는다. 장기간 영국에 체류하며 운전하려면 영국 운전면허증으로 교환해야 한다. 인터넷을 검색해 보니 주 영국 대한민국 대사관 홈페이지의 영국 운전면허증 교환안내에 영국 운전면허증 교환 요건 및 절차가 자세히 나와있다. 그러나 다음과 같은 이유(알고 나면 별것 아니지만 알기 전에는 어렵게 느껴지는 그런 것들)로 바로 진행하기가 어려웠다.

Read more...

프로젝트 오일러 66

x^2 – Dy^2 = 1 형태의 디오판토스 방정식 풀기

문제 자세히 보기: [국어] [영어]

\sqrt D i 번째 근사분수(convergents)를 \frac{h_i}{k_i} 라 하면, 펠 방정식의 해 중 x 를 최소화하는 해 (x_1, y_1) h_i^2 - Dk_i^2 = 1 를 만족시키는 (h_i, k_i) 가 된다. h_i, k_i 는 다음과 같이 구할 수 있다.

%math \begin{aligned} h_i &= a_ih_{i-1} + h_{i-2} \newline k_i &= a_ik_{i-1} + k_{i-2} \end{aligned}

Read more...

프로젝트 오일러 65

e 의 100번째 연분수 확장 값의 분자 자릿수를 모두 더하면?

문제 자세히 보기: [국어] [영어]

e 의 연분수를 꼴을 [a_0; a_1, a_2, a_3, ...] 이라 했을 때, 100번째 연분수 확장 값을 계산하려면 a_{99} (100번째 항)부터 값을 계산해 올라가야 한다. 문제에서 e 의 연분수 꼴이 [2; 1,2,1, 1,4,1, 1,6,1, ..., 1,2k,1, ... ] 로 나타낼 수 있다고 되어 있으므로 n 이 주어졌을 때 a_{n-1}, a_{n-2}, ..., a_0 을 구하는 함수는 다음과 같이 만들 수 있다.

Read more...