Posts

영국 은행 계좌 만들기

영국에 와서 제일 먼저 해야 하는 일 중 하나가 은행 계좌 만들기였다. 영국에 오기 전 이주 담당자가 Lloyds와 Nat West 두 은행을 소개해 주었다. 특히 Lloyds를 선택할 경우 계좌를 신속하게 만들어주는 절차가 있다고 하며 매니저 전화번호와 메일주소까지 알려주었다. 그래서 나처럼 이주하는 사람들을 위해 미리 준비된 절차가 있을 거라 기대했다.

Read more...

Emacs: 최근 사용한 파일 목록

최근 사용한 파일 기능은 그리 자주 사용하는 편은 아니었다. 파일을 찾을 때 그 파일을 최근 열었는지 생각하기 보다는 직접 찾는 게 더 빠르다고 생각했다. IDE를 쓸 때는 소스 파일을 쉽게 찾을 수 있는 기능을 활용했다. 문서 작업을 할 때도 원하는 파일을 특정 디렉터리에서 빠르게 찾을 수 있었다. 아마도 문서 파일을 보관하는 디렉터리 구조도 복잡하지 않았고 파일도 많지 않았기 때문일 것이다.

Read more...

프로젝트 오일러 53

1 \le n \le 100 일때 _nC_r 의 값이 1백만을 넘는 경우는 모두 몇 번?

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

r \le n 이므로 n , r 의 범위는 각각 1 \le n \le 100 , 1 \le r \le 100 이다. 모든 n , r 조합에 대해 _nC_r 을 구한다 해도 경우의 수는 100 \times 100 = 10,000 이므로 금방 구할 수 있다.

Read more...

프로젝트 오일러 52

2배, 3배, 4배, 5배, 6배의 결과도 같은 숫자로 이루어지는 가장 작은 수?

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

어떤 두 수가 같은 숫자로 이루어져 있는지 비교하려면 두 수를 모두 자릿수로 분해한 다음 정렬해 결과가 같은지 확인하면 된다. str 함수로 숫자를 문자열로 바꾼 다음 sort로 정렬하면 각 자릿수가 정렬된 시퀀스를 얻을 수 있다. compsortstr을 합성하면 인자를 문자열로 바꿔 정렬하는 함수를 만들 수 있다. 주어진 여러 개의 숫자가 모두 같은 숫자로 이루어져 있는지 확인하는 함수는 다음과 같이 쉽게 구현할 수 있다.

Read more...

프로젝트 오일러 51

일부 숫자를 치환했을 때 8개의 서로 다른 소수가 생기는 가장 작은 소수?

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

문제를 분석해보면 다음과 같은 조건을 만족해야 함을 알 수 있다.

  • 치환할 위치가 마지막 자리면 안 된다.
  • 치환할 자리는 세 자리여야 한다.
  • 치환할 숫자는 0, 1 또는 2여야 한다.

Read more...

영국에서의 첫 운전

지난 일요일에 중고차를 구입했다. 그러나 차를 구입했다고 바로 운전을 할 수 있는 게 아니었다. 일단 자동차 세금을 내야 운행이 가능하다. 집에 차를 세울 공간이 없어 공영 주차장도 등록해야 했다. 자동차 보험도 들어야 했다. 결국 자동차는 구입 즉시 아는 분 집에 주차해 놓을 수밖에 없었다. 닷새 동안 이 모든 일을 다 처리한 후에야 자동차를 운전할 수 있게 되었다.

Read more...

영국에 오기 전 알았으면 좋았을 것들

한국에서 짐을 쌀 때 정리할 시간도 부족했지만 그냥 처분하기에 아까운 생각도 들어 온갖 잡동사니를 가져왔다. 영국에서 어떻게든 활용할 수 있을 거라 생각했다. 그러나 가져오지 말았어야 할 처치 곤란한 세간이 많았다. 영국에 오기 전에 미리 알았더라면 이렇게 바리바리 싸가지고 오지 않았을 것이다. 싼 값에 처분하거나 아는 사람에게 공짜로 넘기는 편이 훨씬 나았을 것이다.

Read more...

프로젝트 오일러 50

1백만 이하의 소수 중 가장 길게 연속되는 소수의 합으로 표현되는 수는?

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

소수의 누적 합을 만들어두면 문제를 쉽게 풀 수 있다. p_i i 번째 소수라 하고 s(n) n 번째 소수까지의 누적 합이라 하자.

%math \begin{aligned} s(n) = p_1 + p_2 + ... + p_n \end{aligned}

Read more...

프로젝트 오일러 49

세 항이 소수이면서 다른 수의 순열이 되는 4자리 숫자의 등차수열 찾기

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

네 자리 소수에 대해서만 계산을 해보면 되므로, 무차별 대입법을 이용해도 답을 빠르게 찾아낼 수 있을 것 같다. 다음과 같은 도구가 있다면 문제를 쉽게 풀 수 있다.

  • 자릿수가 네 자리인 소수 집합
  • 주어진 네 자리 소수의 순열을 구해 이 중 소수만 걸러내 리턴하는 함수
  • 주어진 시퀀스에서 등차수열을 찾아내는 함수

Read more...

프로젝트 오일러 48

1^1 + 2^2 + 3^3 + ... + 1000^{1000} 의 마지막 10자리는?

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

이 문제 역시 아주 큰 숫자를 다루는 문제지만, Java의 BigInteger나 Clojure의 BigInt를 쓰면 쉽게 풀 수 있다.

Read more...