Posts

프로젝트 오일러 12

500개 이상의 약수를 갖는 가장 작은 삼각수는?

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

삼각수의 시퀀스를 만들어 앞에서부터 하나씩 약수의 개수를 조사하면 될 것 같다. 문제 1에서 1부터 n까지 정수 합을 구하는 공식을 살펴봤다. n번째 삼각수는 1부터 n까지 합이므로 공식을 이용해 다음과 같이 n번째 삼각수를 구하는 함수를 만들 수 있다.

Read more...

국어 교육에 대해

출근길 버스 옆자리에 앉은 사람이 공무원 시험 교재를 보며 공부하고 있었다. 곁눈으로 살펴봤는데 '반어법이 어쩌구 저쩌구...' 하는 내용이 있는 걸로 봐서 국어 교재인 듯 했다. 국어 교재를 보니 고등학교 때 국어 때문에 짜증났던 생각이 났다. 한편으로는 더 이상 저런 걸 안 봐도 된다는 생각에 안도감을 느꼈지만, 다른 한편으로는 아직도 국어 공부를 저런 식으로 해야 하는 건가 하는 생각에 마음이 불편해졌다.

Read more...

프로젝트 오일러 11

20×20 격자에서 연속된 네 숫자의 곱 중 최대값?

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

문제 8에서 살펴봤듯이 partition 함수를 사용하면 연속된 숫자를 네 개씩 묶어낼 수 있다.

Read more...

프로젝트 오일러 10

이백만 이하 소수의 합은?

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

문제 7에서 어떤 수가 소수인지 판별하는 함수와 Clojure 라이브버리로 제공되는 소수의 지연 시퀀스를 살펴봤다.

Read more...

프로젝트 오일러 9

a + b + c = 1000 이 되는 피타고라스 수?

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

피타고라스 수란 a^2 + b^2 = c^2 을 만족하는 세 자연수 쌍 (a, b, c) 를 말한다. (3, 4, 5), (5, 12, 13) 등이 잘 알려진 피타고라스 수다.

Read more...

Emacs: 빈 줄 지우기

편집중인 버퍼에서 빈 줄을 모두 지우고 싶으면 어떻게 해야 할까? 코드를 작성할 때는 이런 경우가 거의 없지만 다른 파일을 편집할 때는 빈 줄을 모두 삭제해야 하는 경우가 종종 생긴다.

Read more...

프로젝트 오일러 8

1000자리 숫자 안에서 이어지는 5자리 숫자의 곱 중 최대값은?

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

1,000자리 숫자라고 하지만 1,000개의 숫자 리스트로 보는 편이 문제를 풀기에 더 좋을 것 같다. Clojure에서는 문자열도 시퀀스로 다룰 수 있으므로 bigint를 쓰기 보다는 문자열로 만들어 작업하는 게 더 편하다.

Read more...

프로젝트 오일러 7

10001번째의 소수?

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

에라토스테네스 체(Sieve of Eratosthenes)를 이용하면 소수 목록을 구할 수 있지만, 이 문제의 경우 체의 범위를 어디까지 해야 할지가 애매하다. 대충 50,000 정도까지 해보고 안 되면 다시 100,000 정도까지 해보는 식으로 범위를 늘려가며 문제를 풀 수도 있다.

Read more...

Java REPL

코드를 작성하다 보면 작은 코드 조각을 간단히 테스트해보고 싶을 때가 자주 생긴다. 간단한 계산이 필요할 수도 있고 특정 함수를 호출했을 때의 결과를 확인하고 싶을 수도 있다. 코드가 어떻게 동작하는지 간단히 확인해보고 싶을 수도 있다.

Read more...

Emacs: 행 연결

코드를 편집하다 보면 여러 줄을 한 줄로 합치고 싶을 때가 종종 생긴다. 예를 들어 다음과 같은 코드가 있다고 하자.

func(arg1,
     arg2,
     arg3);

이걸 다음과 같이 바꾸고 싶다.

func(arg1, arg2, arg3);

Read more...