프로젝트 오일러 93

숫자 4개와 사칙연산을 써서 가장 길게 이어지는 숫자 만들기

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

숫자 네 개에 사칙연산자를 세 개 사용할 수 있으므로, 각 숫자를 A, B, C, D라 하고 사칙연산자를 Op1, Op2, Op3라 하면, 다음과 같은 조합을 생각할 수 있다. 모든 연산은 괄호로 둘러싸 연산자 우선순위를 고려하지 않게 하면 생각하기가 조금 쉬워진다.

Read more...

소득신고

일을 미루는 것은 내 오랜 습관이다. 이번 소득신고 사건 역시 내 오랜 습관의 연장선에 있다. 영국의 과세연도는 매년 4월 6일부터 그 다음해 4월 5일까지다. 온라인 소득신고 마감일은 해당 과세 연도의 다음해 1월 말이다. 종합소득세 신고를 5월 한 달 동안 마쳐야 하는 한국에 비하면 신고 기간이 상당히 여유있게 주어졌다 할 수 있다.

Read more...

프로젝트 오일러 92

자릿수를 제곱해서 더해가는 수열의 신기한 성질

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

무차별 대입법

일단 무식한 방법으로 풀어보자. 1부터 1천만까지 숫자를 대입하면서 자릿수를 제곱해 더한 수가 89에 도달하는지 확인하는 방법이다. 자릿수를 제곱해 더한 수를 구하는 함수는 다음과 같이 간단히 작성할 수 있다.

Read more...

영어 선생님

영국에 와 팀에 합류했을 때 영어로 의사소통하는 것에 어려움을 느꼈다. 특히 영국 사람들이 하는 말을 알아 듣기 힘들었다. 팀 동료가 내 어려움을 알아채고는 회사에서 지원 방법이 있는지 알아보겠다고 했다. 그리고 매니저가 영어 회화 강좌를 들을 수 있게 해 주었다.

Read more...

바둑

한동안 바둑을 두지 않다가 최근 다시 바둑을 두기 시작했다. Online-Go란 사이트를 알게 된 다음부터다. 한국의 바둑 사이트와 달리 구글 아이디로 계정을 만들 수 있고, 별도 프로그램 설치 없이 브라우저에서 바둑을 둘 수 있다. 편리한 만큼 내게는 독이다.

Read more...

프로젝트 오일러 91

사분면 안의 직각삼각형 개수 세기

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

1사분면 0 \le x, y \le 50 에서 P의 가능한 위치는 모두 51 \times 51 이고 Q의 가능한 위치도 51 \times 51 이다. 무차별 대입법으로 문제를 푼다면 51^4 = 6,765,201 번의 루프를 돌면서 직각인지 확인해야 하므로 빠른 시간에 답을 구하지 못한다. 이 방법으로 문제를 풀면 내 환경에서는 답을 구하는 데 7초 이상 걸린다.

Read more...

프로젝트 오일러 90

정육면체 두 개로 제곱수 만들기

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

100 미만의 제곱수는 아홉 가지 뿐이고, 숫자 10개 중 6개를 고르는 경우의 수도 210( _{10}C_6 = 210 )으로 비교적 작으므로, 모든 조합을 구해 계산해 보는 무식한 방법을 적용해도 문제를 풀 수 있을 것 같다.

Read more...

프로젝트 오일러 89

로마숫자 최적화하기

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

먼저 다음과 같이 텍스트 파일을 읽어 시퀀스로 만들어둔다.

(ns p089
  (:require [clojure.string :as str]))

(def romans (str/split (slurp "data/roman.txt") #"\r\n"))

Read more...

프로젝트 오일러 88

일정한 개수의 숫자들을 더해도 곱해도 같은 값이 되는 경우 조사하기

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

문제 83과 더불어 내게 가장 어려운 문제 중 하나였다. 안타깝지만 이 문제는 내 두뇌 용량을 넘는 문제여서 풀이를 보고도 이해할 수가 없었다. 아래 코드는 다른 블로그에서 찾은 Python 풀이를 Clojure로 옮긴 것에 불과하다.

Read more...

불운 4

1월 말 교통사고가 났다. 아내는 큰 아이 학교 데려다 주고 오는 길이었다. 아내의 설명에 따르면 사고 당시 상황은 다음과 같다.

Read more...