Java REPL
코드를 작성하다 보면 작은 코드 조각을 간단히 테스트해보고 싶을 때가 자주 생긴다. 간단한 계산이 필요할 수도 있고 특정 함수를 호출했을 때의 결과를 확인하고 싶을 수도 있다. 코드가 어떻게 동작하는지 간단히 확인해보고 싶을 수도 있다.
내 이 세상 도처에서 쉴 곳을 찾아보았으나, 마침내 찾아낸, 컴퓨터가 있는 구석방보다 나은 곳은 없더라.
10001번째의 소수?
에라토스테네스 체(Sieve of Eratosthenes)를 이용하면 소수 목록을 구할 수 있지만, 이 문제의 경우 체의 범위를 어디까지 해야 할지가 애매하다. 대충 50,000 정도까지 해보고 안 되면 다시 100,000 정도까지 해보는 식으로 범위를 늘려가며 문제를 풀 수도 있다.
코드를 작성하다 보면 작은 코드 조각을 간단히 테스트해보고 싶을 때가 자주 생긴다. 간단한 계산이 필요할 수도 있고 특정 함수를 호출했을 때의 결과를 확인하고 싶을 수도 있다. 코드가 어떻게 동작하는지 간단히 확인해보고 싶을 수도 있다.
코드를 편집하다 보면 여러 줄을 한 줄로 합치고 싶을 때가 종종 생긴다. 예를 들어 다음과 같은 코드가 있다고 하자.
func(arg1,
arg2,
arg3);
이걸 다음과 같이 바꾸고 싶다.
func(arg1, arg2, arg3);
Sublime Text 에디터 홈페이지에 있는 데모 화면을 보고 감탄했던 적이 있다. 특히 데모 2/6에 감탄해 Emacs에서 비슷하게 해보려 했지만 성공하지 못했다. 그동안 에디터가 많이 발전했음을 느끼며 주 사용 에디터를 Sublime Text로 바꿔볼까 생각했다. 사용해보고 마음에 들면 기꺼이 정품을 구입할 생각이었다.
1부터 100까지 "제곱의 합"과 "합의 제곱"의 차는?
문제가 단순하고 범위도 적어 아무렇게나 풀어도 쉽게 답을 구할 수 있다.
1 ~ 20 사이의 어떤 수로도 나누어 떨어지는 가장 작은 수는?
1~20의 최소공배수(Least Common Multiple)를 구하는 문제다. 최소공배수는 다음 식으로 간단히 구할 수 있다.
Emacs에서 데이터베이스 쿼리를 할 수 있으면 좋겠다는 생각이 들었다. 지금까지 찾은 방법은 SQLi를 이용한 방법과 edbi를 사용하는 방법 두 가지다. SQLi는 Emacs 기본 기능을 사용하기 때문에 별도 패키지를 설치하지 않아도 되지만 기능도 기본 수준이다. edbi는 SQLi보다 풍부한 기능을 제공하지만 별도 패키지를 설치해야 하고 cpan
으로 RPC::EPC::Service
, DBI
, 데이터베이스 드라이버 등의 Perl 모듈을 설치해야 한다.
세자리 수를 곱해 만들 수 있는 가장 큰 대칭수는?
세 자리 정수는 100부터 999까지다. 따라서 무식하게 풀어로 루프 회수가 1백만 번을 넘지 않으며, 임을 고려해 중복을 제거하면 루프 회수를 절반으로 줄일 수 있다. 따라서 대충 풀어도 금방 답을 구할 수 있다.
Eclipse에서 개발할 때 Quick Fix 기능을 자주 사용한다. 입력하던 코드에 빨간색 물결 모양의 밑줄이 표시되면 바로 Cmd+1
(윈도우에서는 Ctrl+1
)을 누른다. 대부분의 경우 Quick Fix가 제안하는 대로만 해도 문제가 해결된다. 그런데 맥북에어에서 작업할 때는 Cmd+1
을 누르려다 Cmd+Q
를 누르는 실수를 자주 한다. Cmd+Q
는 Mac OS X의 거의 모든 애플리케이션에서 종료 단축키로 사용된다. Q
와 1
이 가까이 있는 데다 맥북에어는 키보드가 일반 키보드에 비해 조밀하기 때문에 1
을 누르려다 실수로 Q
를 눌러 의도치 않게 Eclipse가 종료되어 여간 짜증나는 게 아니었다.
600851475143의 가장 큰 소인수는?
백만 정도에 대해서는 루프를 돌려도 비교적 빠르게 답을 얻을 수 있지만, 천만이 넘는 경우에는 무식하게 루프를 돌리는 방법이 통하지 않는다.