Sandbox의 뜻
프로그래밍 또는 보안 관련 책을 읽다 보면 종종 '모래상자'란 용어가 나온다. 'sandbox'를 '모래상자'로 번역한 것이다. '모래상자'란 단어를 보면 어떤 그림이 떠오르는가? 'sandbox'를 직역하면 '모래상자'가 맞긴 하지만, 나는 이렇게 번역하는 게 마음에 들지 않는다.
내 이 세상 도처에서 쉴 곳을 찾아보았으나, 마침내 찾아낸, 컴퓨터가 있는 구석방보다 나은 곳은 없더라.
프로그래밍 또는 보안 관련 책을 읽다 보면 종종 '모래상자'란 용어가 나온다. 'sandbox'를 '모래상자'로 번역한 것이다. '모래상자'란 단어를 보면 어떤 그림이 떠오르는가? 'sandbox'를 직역하면 '모래상자'가 맞긴 하지만, 나는 이렇게 번역하는 게 마음에 들지 않는다.
출퇴근 시간이 적을 수록 좋다고 생각했다. 회사와 집이 멀리 떨어져 있으면 출퇴근에 많은 에너지를 쓰게 된다. 몸도 힘들고 시간도 아깝다. 1시간이 넘으면 계속 다니기가 힘들게 느껴졌다. 그래서 가급적 회사 근처에 집을 얻곤 했다.
가족과 함께 외국에 와서 적응하는 것은 생각했던 것보다 어려웠다. 내 한 몸 챙기기도 버거운데 가족 일까지 신경을 써야 해서 힘에 부쳤다. 한국에서 회사를 옮긴 경우에는 새 회사에 적응하는 데 집중할 수 있었지만, 여기서는 나만 적응한다고 되는 게 아니다. 다른 식구들도 새로운 환경에 적응할 수 있도록 도와야 한다.
무리수인 제곱근들의 자릿수 더하기
이 문제를 푸는 데 Math.sqrt
를 사용할 수는 없다. Math.sqrt
가 리턴하는 double
형의 유효자리 숫자는 고작 17자리에 불과하다. 제곱근의 자릿수를 원하는 만큼 구할 수 있는 다른 방법이 필요하다. 다행히 Sqrt root by substraction에 정수의 제곱근을 구하는 방법이 자세히 나와 있다.
접속 기록으로부터 비밀번호 알아내기
접속 기록 데이터가 많지 않으므로 코드를 아무렇게나 짜도 답을 빠르게 구할 수 있을 것이다. 먼저 다음과 같이 접속 기록을 읽는 코드를 작성한다.
(def keylog
(-> (slurp "data/keylog.txt")
(clojure.string/split #"\r\n")
distinct
sort))
중복을 제거하면 접속 기록이 서른 세 개밖에 되지 않는다.
동전을 여러 더미로 나누는 경우의 수 세기
동전을 여러 더미로 나누는 방법의 수는 정수를 덧셈으로 표시할 수 있는 방법의 수와 같다. 위키백과를 찾아보면 다음과 같이 공식이 나와 있다.
을 증가시키면서 을 구해 1백만으로 나누어 떨어지는지 확인하는 방법으로 답을 찾을 수 있다. 을 구하는 데 필요한 는 다음과 같이 쉽게 구현할 수 있다.
며칠 전 아주 지겨워 보이는 작업을 하게 되었다. 엑셀 파일에 있는 정보를 참고해 설정 파일을 수정하는 일이었다. 설정 파일은 국가별 설정 정보를 담고 있는데 각 국가별 설정에 새로운 필드를 추가해야 하고 필드의 값은 엑셀 파일을 참조해 지정해야 했다.
아마존에 오기 전 아마존이 다닐만한 회사인지 조사하는 데, 온콜에 대한 불만을 토로하는 글이 많이 보였다. 온콜이 뭐길래 그러지? 사전을 찾아보니 다음과 같이 설명되어 있다. 우리 말로 하면 '당직'과 비슷한 개념일 것 같다.
소수의 합으로 나타내는 방법이 5000가지가 넘는 최초의 숫자는?
이 문제도 바로 전에 풀었던 문제 76과 마찬가지로 문제 31비슷하다. 여기서는 동전의 종류가 소수라고 생각하면 된다. 따라서 인덱스를 넣으면 소수가 나오는 맵을 만들어 두면 문제 풀이에 활용할 수 있다. 소수는 100개 정도 준비하면 충분할 것 같다.
숫자 100을 두 개 이상의 자연수의 합으로 나타내는 방법은 모두 몇 가지?
이 문제는 영국 화폐 액면가를 조합하는 수를 계산했던 문제 31과 비슷하다. 문제 31에서는 동전의 종류가 여덟가지 였지만, 이 문제에서는 동전의 종류가 1, 2, ..., 99까지 99가지가 있다고 생각할 수 있다.