Element of Programming Interview in Java 스터디
-
각 주제별로 요구하는 개념을 명확하게 설명할 수 있는지 자가진단.
-
부족하면 보충 학습 후 정리
-
각 문제들을 다음과 같이 풀이 *교재 서문, EPI 스타일을 지키는 풀이법
a. 가장 간단하게 푸는 방법은 무엇일까?
b. 비효율적인 부분이 있을까? 분석 후 개선점 찾기
c. 더 효율적인 알고리즘 개발, 설명
d. 실제 입력 데이터를 알고리즘에 대입
e. 알고리즘에서 중요한 부분을 코드로 설명가능한가?
f. 시간 및 공간복잡도를 분석
g. 변형된 문제를 풀이, 내용을 얼마나 잘 이해했는지 확인
-
한번에 다 하려 하기 보다는 점진적으로 나아가자.
- Primitive Types 주요 개념 / 문제 풀이 (4.1 ~ 4.7)
- Arrays 주요 개념 복습
- Arrays 문제 풀이 (5.1 ~ 5.2)
- Strings 주요 개념 / 문제 풀이(6.1 ~ 6.3)
- LinkedList 주요 개념 / 문제 풀이(7.1 ~ 7.4)
- Primitive Type 문제 풀이 (4.8 ~ 4.9)
4.1 Computing the parity of a word
4.2 Swap Bits
4.3 Reverse bits
4.4 Find a closest integer with the same weight
4.5 Compute $x \times y$ without arithmetical operators
4.6 Compute $x /y$
4.7 Compute $x^y$
4.8 Reverse Digits
4.9 Check if a decimal integer is a palindrome
4.10 Generatoe uniform random numbers
4.11 Rectangle intersection
5.1 The Dutch national flag problem
5.2 Increment an arbitary-precision integer
5.3 Multiply two arbitrary-precision integers
5.4 Advance through an array
5.5 Delete duplicates from a sorted array
5.6 Buy and sell a stock once
5.7 Buy and sell a stock twice
5.8 Enumerate all primes to n
5.9 Permute the elements of an array
5.10 Compute the next permutation
5.11 Sample offline data
5.12 Sample online data
5.13 Compute a random permutation
5.14 Compute a random subset
5.15 Generate nonuniform random numbers
5.16 The Sudoku checker problem
5.17 Compute the spiral ordering of a 2D array
5.18 Rotate a 2D array
6.1 Interconvert strings and integers
6.2 Base conversion
6.3 Compute the spreadsheet column encoding
6.4 Replace and remove
6.5 Test palindromicity
6.6 Reverse all the words in a sentence
6.7 Compute all mnemonics for a phone number
6.8 The look-and-say problem
6.9 Convert from Roman to Decimal
6.10 Compute all valid IP addresses
6.11 Write a string sinusoidally
6.12 Implement run length encoding
6.13 Find the first occurence of a substring
7.1 Merge two sorted lists
7.2 Reverse a single sublist
7.3 Test for cyclicity
7.4 Test for overlapping lists - lists are cycle free
7.5 Test for overlapping lists - lists may have cycles
7.6 Delete a node from a singly linked list
7.7 Remove the kth last element from a list
7.8 Remove duplicates from a sorted list
7.9 Implement cycle right shift for singly linked lists
7.10 Implement even-odd merge
7.11 Test whether a singly linked list is palindromic
7.12 Implement list pivoting
7.13 Add list-based integers