Posts

프로젝트 오일러 87

소수의 제곱 + 소수의 3제곱 + 소수의 4제곱으로 나타낼 수 있는 숫자

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

a, b, c 를 소수라 했을 때, a, b, c 의 모든 조합에 대해 a^2 + b^3 + c^4 을 구한 다음, 50,000,000 이하의 수를 추려 중복을 제거한 후 개수를 세면 문제의 답을 구할 수 있다. 다만 a, b, c 를 무한대까지 계산할 수는 없으므로 적절한 범위를 지정해야 한다.

Read more...

불운 2

2월 초, 아내 휴대폰 문제와 동시에 자동차에도 문제가 생겼다. 아내 휴대폰이 없는 상태에서 자동차 문제를 해결하려다 보니 일이 복잡해졌다.

Read more...

불운 1

나쁜 일은 한꺼번에 찾아온다고 했던가. 여러 사건이 복잡하게 얽혀 있어 설명하기도 쉽지가 않지만, 두 가지 핵심 축은 휴대폰과 자동차라 할 수 있겠다. 여기서는 휴대폰 문제를 먼저 이야기하려 한다.

Read more...

리팩터링

API Gateway를 수정하는 작업을 하다가 다음 메서드를 보았다. 주어진 문자열에서 괄호 짝이 맞는지 확인하는 함수로 파라미터가 포함된 URI를 검증할 때 사용되고 있었다.

Read more...

코딩 시간과 코드 품질

시간이 충분하면 좋은 코드를 작성할 수 있지만, 코드 품질 따지느라 개발 기간이 늘어지는 것 보다는 빨리 개발해 서비스를 시작하는 게 중요하다는 주장을 볼 수 있다. 옳은 말이다. 요즘 같이 비즈니스 환경이 급변하는 세상에 속도가 중요한 요소임엔 틀림 없다. 그러나 코딩에 들이는 시간과 코드 품질이 비례한다는 주장에는 동의하지 않는다.

Read more...

프로젝트 오일러 86

육면체의 한쪽 구석에서 다른 구석으로 가는 최단 경로 찾기

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

직육면체를 펼쳐 평면으로 생각하면 문제를 푸는 데 도움이 된다. 평면 위의 한 점에서 다른 점으로 가는 최단 경로는 직선이다. 한쪽 구석 S 에서 다른 구석 F 로 가는 경로는 네 가지가 있다.

Read more...

프로젝트 오일러 85

사각 격자 안에 포함된 사각형 개수 세기

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

가로 m 세로 n 인 격자에서 각 크기의 사각형이 몇 개씩 들어가는지 생각해보자. 크기(가로 \times 세로)가 1 \times 1 인 사각형은 생각할 것도 없이 m \times n 개가 들어간다. 크기가 1 \times 2 인 사각형은 가로 방향으로는 m 개, 세로 방향으로는 n-1 개가 들어갈 수 있으므로 개수는 m \times (n-1) 이 될 것이다.

Read more...

프로젝트 오일러 84

모노폴리 게임을 4면체 주사위로 할 때 가장 많이 방문하는 칸은?

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

이 문제를 수학적으로 푸는 방법이 있는지 모르겠다. 여기서는 문제에 주어진 게임 규칙을 모두 구현한 후, 직접 사면체 주사위를 1백만 번 던져 어느 칸을 가장 많이 방문했는지 세는 방법으로 문제를 풀었다.

Read more...

프로젝트 오일러 83

상하좌우로 움직여서 좌상단→우하단으로 가는 경로의 합이 최소인 경우는?

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

이 문제에는 두 가지 복병이 기다리고 있었다. 하나는 A* Search Algorithm 알고리즘이었다. 여러 가지 방법을 생각해 보았지만 A* 알고리즘을 사용하지 않고는 풀 수 없었다. 구글로 검색해보면 A* 알고리즘에 대한 설명을 찾을 수 있지만 이해하기가 쉽지 않았다. 얼마 전 Couresra에서 Algorithms, Part I을 수강한 후에야 A* 알고리즘을 이해할 수 있었다.

Read more...

프로젝트 오일러 82

맨 왼쪽 열에서 맨 오른쪽 열까지 가는 경로의 합이 최소인 경우는?

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

시작 위치와 종료 위치가 고정되어 있지 않다. 맨 왼쪽 열의 아무 곳에서 시작해 맨 오른쪽 열의 아무 곳에나 도착하기만 하면 된다. 위/아래/오른쪽 세 방향으로 이동할 수 있다. 왼쪽으로는 이동할 수 없다.

Read more...