원서 : Dynamic Programming for Coding Interviews: A Bottom-Up approach to problem solving 번역서 (종이책) 다이내믹 프로그래밍 완전 정복 빠르고 우아한 상향식 문제 풀이법 (이북) 다이내믹 프로그래밍 완전 정복: 빠르고 우아한 상향식 문제 풀이법 (View 옵션이 Original Pages만 지원 ) 감상 2020.07.21 Kindle로 약간 보다가 번역서가 편집이 더 이쁘고 가독성이 좋아서 종이책으로 구입했다. 기술 면접에 적절한 난이도의 문제를 친절히 차근차근 설명했다. 원서의 제목이 저자의 의도에 더 부합하는 듯하다.
감상 2020.07.20 Java8이 나오기 전에 쓰여진 책이라 현시점에서는 오래된 지식이 많다. 기술 역사서로는 의미가 있다. 알고리즘 구현예제들도 최적화의 여지가 있어보인다. 예: Quick Sort는 책의 예제보다 공간복잡도를 더 줄여서 구현할 수 있다. 인상 깊은 단락 p99 Collections.newSetFromMap() 언급. 책에는 오타로 Collection.netSetFromMap() 이라고 되어 있다.
p158 Integer.MAX_VALUE 등에 대한 언급. 2의 보수 원리. 아래와 같이도 확인할 수 있다.
assertThat(-Integer.MIN_VALUE).isEqualTo(Integer.MIN_VALUE); assertThat(Math.abs(Integer.MIN_VALUE)).isEqualTo(Integer.MIN_VALUE); assertThat(Integer.MIN_VALUE -1).isEqualTo(Integer.MAX_VALUE); p320 https://code.google.com/archive/p/dbdeploy/ 소개.
인상 깊은 단락 p27 빨간눈 승려 문제
p57 폰 노이만 일화
p59 1~100중 하나의 숫자가 남았을때 남은 숫자 확인
99개의 값을 저장할 수 있는 배열 item[O], item[1], , item[98]이 있댜 1부터 100까지의 값이 들어 있는 집합 {1, 2, 3, , 100}에서 무작위로 수를 꺼내서 배열에 저장했다. 집합에 들어 있는 원소의 수는 100개인 데 반해서 배열은 값을 99개까지만 저장할 수 있으므로 집합 안에 하나 의 숫자가 남았다. 남은 것이 어느 수인지 확인할 수 있는 프로그램을 작성하라.