Emacs: 행 연결
코드를 편집하다 보면 여러 줄을 한 줄로 합치고 싶을 때가 종종 생긴다. 예를 들어 다음과 같은 코드가 있다고 하자.
func(arg1,
arg2,
arg3);
이걸 다음과 같이 바꾸고 싶다.
func(arg1, arg2, arg3);
내 이 세상 도처에서 쉴 곳을 찾아보았으나, 마침내 찾아낸, 컴퓨터가 있는 구석방보다 나은 곳은 없더라.
코드를 편집하다 보면 여러 줄을 한 줄로 합치고 싶을 때가 종종 생긴다. 예를 들어 다음과 같은 코드가 있다고 하자.
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의 가장 큰 소인수는?
백만 정도에 대해서는 루프를 돌려도 비교적 빠르게 답을 얻을 수 있지만, 천만이 넘는 경우에는 무식하게 루프를 돌리는 방법이 통하지 않는다.
쿼리를 작성하다 보면 행을 열로 또는 열을 행으로 바꾸고 싶은 경우가 생긴다. 데이터 모델을 만들 때 같은 종류의 데이터는 행으로 저장하는 것이 좋지만, 고객은 열로 표현된 형태의 보고서를 보고 싶을 수 있다. 쿼리 결과를 행에서 열로 또는 열에서 행으로 바꾸는 작업은 원리를 이해하면 어렵지 않지만 약간의 기교가 필요하다. 그래서인지 쿼리 결과의 행/열 전환은 SQL 관련 단골 질문이기도 하다.
피보나치 수열에서 4백만 이하이면서 짝수인 항의 합은?
피보나치 수열의 정의는 다음과 같다.
구현하기 쉬워 보인다.