Posts

프로젝트 오일러 6

1부터 100까지 "제곱의 합"과 "합의 제곱"의 차는?

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

문제가 단순하고 범위도 적어 아무렇게나 풀어도 쉽게 답을 구할 수 있다.

Read more...

프로젝트 오일러 5

1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는?

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

1~20의 최소공배수(Least Common Multiple)를 구하는 문제다. 최소공배수는 다음 식으로 간단히 구할 수 있다.

Read more...

Emacs를 데이터베이스 클라이언트로 사용하기

Emacs에서 데이터베이스 쿼리를 할 수 있으면 좋겠다는 생각이 들었다. 지금까지 찾은 방법은 SQLi를 이용한 방법과 edbi를 사용하는 방법 두 가지다. SQLi는 Emacs 기본 기능을 사용하기 때문에 별도 패키지를 설치하지 않아도 되지만 기능도 기본 수준이다. edbi는 SQLi보다 풍부한 기능을 제공하지만 별도 패키지를 설치해야 하고 cpan으로 RPC::EPC::Service, DBI, 데이터베이스 드라이버 등의 Perl 모듈을 설치해야 한다.

Read more...

프로젝트 오일러 4

세자리 수를 곱해 만들 수 있는 가장 큰 대칭수는?

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

세 자리 정수는 100부터 999까지다. 따라서 무식하게 풀어로 루프 회수가 1백만 번을 넘지 않으며, a \times b = b \times a 임을 고려해 중복을 제거하면 루프 회수를 절반으로 줄일 수 있다. 따라서 대충 풀어도 금방 답을 구할 수 있다.

Read more...

Mac OS X에서 Eclipse 종료 단축키 변경

Eclipse에서 개발할 때 Quick Fix 기능을 자주 사용한다. 입력하던 코드에 빨간색 물결 모양의 밑줄이 표시되면 바로 Cmd+1(윈도우에서는 Ctrl+1)을 누른다. 대부분의 경우 Quick Fix가 제안하는 대로만 해도 문제가 해결된다. 그런데 맥북에어에서 작업할 때는 Cmd+1을 누르려다 Cmd+Q를 누르는 실수를 자주 한다. Cmd+Q는 Mac OS X의 거의 모든 애플리케이션에서 종료 단축키로 사용된다. Q1이 가까이 있는 데다 맥북에어는 키보드가 일반 키보드에 비해 조밀하기 때문에 1을 누르려다 실수로 Q를 눌러 의도치 않게 Eclipse가 종료되어 여간 짜증나는 게 아니었다.

Read more...

프로젝트 오일러 3

600851475143의 가장 큰 소인수는?

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

백만 정도에 대해서는 루프를 돌려도 비교적 빠르게 답을 얻을 수 있지만, 천만이 넘는 경우에는 무식하게 루프를 돌리는 방법이 통하지 않는다.

Read more...

SQL에서 행을 열로 바꾸는 방법

쿼리를 작성하다 보면 행을 열로 또는 열을 행으로 바꾸고 싶은 경우가 생긴다. 데이터 모델을 만들 때 같은 종류의 데이터는 행으로 저장하는 것이 좋지만, 고객은 열로 표현된 형태의 보고서를 보고 싶을 수 있다. 쿼리 결과를 행에서 열로 또는 열에서 행으로 바꾸는 작업은 원리를 이해하면 어렵지 않지만 약간의 기교가 필요하다. 그래서인지 쿼리 결과의 행/열 전환은 SQL 관련 단골 질문이기도 하다.

Read more...

프로젝트 오일러 2

피보나치 수열에서 4백만 이하이면서 짝수인 항의 합은?

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

피보나치 수열의 정의는 다음과 같다.

%math \begin{aligned} F_n &= F_{n-1} + F_{n-2}, \newline F_2 &= F_1 = 1 \end{aligned}

구현하기 쉬워 보인다.

Read more...

담배 컷터

담배값이 크게 인상되어 흡연자의 부담이 늘었지만, 주변에 담배를 끊겠다는 사람은 많아 보이지 않는다. 점심을 먹으러 가는 중 회사 동료가 담배를 피우다 장초를 버리는 모습을 보고 아깝다는 생각이 들었다. 저렇게 태우지 않은 부분이 많이 남았을 때는 피운 부분까지만 잘라내 보관했다가 나중에 다시 피우면 좋지 않을까 해서 떠올린 것이 담배 컷터다. 시가(cigar)의 경우는 시가 컷터가 있어 태운 부분만 잘라내는 것을 어디선가 본 것 같다.

Read more...

프로젝트 오일러 1

1000보다 작은 자연수 중에서 3 또는 5의 배수를 모두 더하면?

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

프로젝트 오일러 문제 중 가장 쉬운 문제일 것이다. 처음에는 문제가 이렇게 쉽지만 뒤로 갈수록 조금씩 어려워져 나중에는 문제가 무슨 뜻인지 이해하기도 힘들어진다. 이 문제는 너무 단순해 아무렇게나 풀어도 답을 구할 수 있다.

Read more...