Java에서 배열 합치기
옆 자리 동료가 Java에서 배열을 합치는 간단한 방법이 있는지 질문했다. 열 개 정도의 배열을 하나로 합치고 싶다는 것이었다. 당장 떠오른 방법은 System.arraycopy
를 사용하는 것이었지만 이걸 몰라서 물어보지는 않았을 것이다. System.arraycopy
를 사용하면 효율적이긴 하겠지만 코드는 별로 예쁘지 않을 것이다. 혹시 이미 이 기능을 구현한 라이브러리가 있나 확인했지만 찾을 수 없었다.
내 이 세상 도처에서 쉴 곳을 찾아보았으나, 마침내 찾아낸, 컴퓨터가 있는 구석방보다 나은 곳은 없더라.
옆 자리 동료가 Java에서 배열을 합치는 간단한 방법이 있는지 질문했다. 열 개 정도의 배열을 하나로 합치고 싶다는 것이었다. 당장 떠오른 방법은 System.arraycopy
를 사용하는 것이었지만 이걸 몰라서 물어보지는 않았을 것이다. System.arraycopy
를 사용하면 효율적이긴 하겠지만 코드는 별로 예쁘지 않을 것이다. 혹시 이미 이 기능을 구현한 라이브러리가 있나 확인했지만 찾을 수 없었다.
그간 생각을 정리하려고 꾸준히 노력했다. 갑자기 떠오른 아이디어, 새롭게 배운 지식, 책에서 본 마음에 드는 구절, 이것 저것에 대한 잡생각 등 마음만 먹으면 쓸 거리는 넘쳐난다. 자발적으로 작성하는 문서는 모두 미래의 나를 위한 것이다. 그냥 보관하는 것이든 블로그에 공개하는 것이든 다른 사람에게 보여주기 보다는 내가 잊지 않으려고 정리하는 것이다. 그동안 글을 쓰는 데 여러 도구를 사용했다. 어떤 도구를 거쳐 지금에 이르렀는지 정리하는 것도 재미있을 것 같다.
φ(n)이 n의 순열이 되는 수 조사하기
이 의 순열이 되는 수 중에서 이 최소가 되는 을 구해야 한다. 이 다음과 같이 표현될 수 있음을 문제 69에서 확인했다.
n/φ(n)이 최대가 되는 1백만 이하의 n 찾기
Euler's totient function을 보면 의 공식을 확인할 수 있다. 을 구하려면 의 모든 소수 약수를 하나씩 넣어가며 곱을 수행해야 한다.
입사한 지 두 달 만에 의미 있는 일을 하게 되었다. 새로운 프로젝트에서 사용할 메트릭 라이브러리를 만드는 작업이었다. 서비스가 호출될 때 또는 서비스 내에서 다른 다운스트림 서비스를 호출할 때 메트릭 정보를 남겨두면 모니터링 도구를 이용해 서비스가 호출된 횟수, 요청을 처리하는 데 걸린 시간, 다운스트림 서비스를 호출하는 데 걸린 시간, 오류 발생 빈도 등을 확인할 수 있다. 아마존은 이미 이런 작업을 위한 내부 도구를 갖추고 있다. 메트릭 정보를 기록하는 라이브러리도 있다. 내가 할 일은 우리 팀에서 새로 개발할 서비스에서 메트릭 정보를 쉽게 남길 수 있게 하는 라이브러리를 만드는 일이었다.
AB 테스트에 대한 글을 읽으면, 간단한 문구 수정이나 버튼 색상 변경 만으로도 전환율이 몇 배 이상 높아졌다, 매출이 몇 십 퍼센트 늘어났다는 주장을 쉽게 볼 수 있다. 단순한 변경만으로 그런 극적인 효과를 얻을 수 있다는 게 미덥지 않지만, 어떤 변경이 긍정적 효과를 주는지 확인하는 수단으로 AB 테스트는 좋은 방법이다.
마방진 성질을 갖는 5각 도형에서 얻을 수 있는 16자리 수의 최대값 구하기
5각 도형의 빈 칸을 다음과 같이 로 지정할 수 있다.
삼각형에서 경로의 합 중 최대값을 구하는 효율적인 방법은?
문제 18과 동일한 문제다. 문제 18에서는 삼각형이 15층에 불과했지만, 여기서는 100층이다. 문제 18에서 이미 제대로 된 방법으로 문제를 풀었기 때문에 똑같은 방법을 사용해 문제를 풀 수 있다. 텍스트 파일로 주어진 데이터를 읽어들이는 코드만 추가해주면 된다.
국제운전면허증이 있다면 영국에서 운전하는 것이 가능하지만, 국제운전면허증은 유효기간이 1년밖에 되지 않는다. 장기간 영국에 체류하며 운전하려면 영국 운전면허증으로 교환해야 한다. 인터넷을 검색해 보니 주 영국 대한민국 대사관 홈페이지의 영국 운전면허증 교환안내에 영국 운전면허증 교환 요건 및 절차가 자세히 나와있다. 그러나 다음과 같은 이유(알고 나면 별것 아니지만 알기 전에는 어렵게 느껴지는 그런 것들)로 바로 진행하기가 어려웠다.
형태의 디오판토스 방정식 풀기
의 번째 근사분수(convergents)를 라 하면, 펠 방정식의 해 중 를 최소화하는 해 은 를 만족시키는 가 된다. 는 다음과 같이 구할 수 있다.