로그인회원가입 장바구니마이페이지
kangcom
전체
Home >   >   > 

262가지 문제로 정복하는 코딩 인터뷰 in Java

   
지은이 아드난 아지즈,쭝시엔 리,아미트 프라카시   |   출판사 인사이트  |   발행일 2021년 10월 01일
 
판매가 35,000원31,500원 10%
마일리지 5% 1,750원
발행일 2021-10-01
ISBN 8966263194 |  9788966263196
기타정보 국내서 | 652쪽
예상출고일 1~2일 이내 (근무일기준)
배송비 무료배송
   
프로그래밍언어
종합지수 0p
   
이 책의 원서
  Elements of Programming Interviews in Java
Createspace Independent Publishing Platform | Adnan Aziz
 

스타트업에서 빅테크 기업까지 실리콘밸리 면접관이 전하는 코딩 인터뷰 노하우. 코딩 인터뷰는 어색한 공간, 낯선 면접관 앞에서 이루어진다. 이 책은 면접관으로 수많은 인터뷰를 해 온 저자들이 집필한 소프트웨어 개발 인터뷰의 종합 안내서다.

자료구조, 탐색, 정렬, 알고리즘 설계 원칙 및 동시성 등에 관련된 문제를 장별로 제시한다. 각 장은 먼저, 문제를 풀기 위해 꼭 알고 있어야 할 내용, 중요한 라이브러리 함수 등을 설명한다. 그 후 실전처럼 문제를 분석하고 답을 내고 코드를 보여 준다. 해당 문제에 대한 설명이 끝나면 비슷한 응용 문제를 제시해 배운 내용을 한 번 더 단단히 할 수 있다.

1부 면접
1장 면접 준비하기
2장 훌륭한 면접을 위한 전략
3장 면접관 입장에서 바라보기

2부 자료구조와 알고리즘
4장 기본 자료형
문제 4.1 패리티 계산하기
문제 4.2 비트 스왑
문제 4.3 비트 뒤집기
문제 4.4 같은 무게를 가진 가장 가까운 정수 찾기
문제 4.5 곱셈과 덧셈 없이 x*y 계산하기
문제 4.6 x/y 계산하기
문제 4.7 x^y 계산하기
문제 4.8 숫자 뒤집기
문제 4.9 회문 확인하기
문제 4.10 임의의 숫자를 균등한 확률로 생성하기
문제 4.11 사각형이 겹치는지 확인하기

5장 배열
문제 5.1 네덜란드 국기 문제
문제 5.2 임의의 정수값 증가시키기
문제 5.3 임의의 두 정수값 곱하기
문제 5.4 배열에서 이동하기
문제 5.5 정렬된 배열에서 중복 제거하기
문제 5.6 주식 한 번 사고팔기
문제 5.7 주식 두 번 사고팔기
문제 5.8 대체 연산
문제 5.9 n보다 작은 모든 소수 나열하기
문제 5.10 배열 안의 원소로 순열 구하기
문제 5.11 다음 순열 구하기
문제 5.12 오프라인 데이터 샘플 구하기
문제 5.13 온라인 데이터 샘플 구하기
문제 5.14 임의의 순열 계산하기
문제 5.15 임의의 부분 집합 만들기
문제 5.16 균등하지 않은 임의의 숫자 생성하기
문제 5.17 스도쿠 체크
문제 5.18 2차원 배열에 나선형으로 원소 배치하기
문제 5.19 2차원 배열 회전하기
문제 5.20 파스칼의 삼각형에서 행 계산하기

6장 문자열
문제 6.1 문자열과 정수 상호 전환하기
문제 6.2 밑수 바꾸기
문제 6.3 스프레드시트 열 인코딩 계산하기
문제 6.4 문자열 바꾸고 삭제하기
문제 6.5 회문 확인하기
문제 6.6 문장의 모든 단어 뒤집기
문제 6.7 문자열 전화번호로 단어 조합하기
문제 6.8 개미수열 문제
문제 6.9 로마 숫자를 10진수로 바꾸기
문제 6.10 유효한 IP 주소 구하기
문제 6.11 사인 곡선 형태로 문자열 작성하기
문제 6.12 반복 길이 부호화로 문자열을 압축ㆍ해제하기
문제 6.13 부분 문자열이 첫 번째로 등장한 위치 찾기

7장 연결리스트
문제 7.1 두 개의 정렬된 리스트 합치기
문제 7.2 부분 리스트 하나 뒤집기
문제 7.3 사이클이 존재하는지 확인하기
문제 7.4 사이클이 없는 두 리스트가 겹치는지 확인하기
문제 7.5 사이클이 존재하는 두 리스트가 겹치는지 확인하기
문제 7.6 단순 연결리스트에서 노드 삭제하기
문제 7.7 리스트에서 뒤에서 k번째 원소 삭제하기
문제 7.8 정렬된 리스트에서 중복된 원소 삭제하기
문제 7.9 단순 연결리스트에서 오른쪽 원형 시프트 구현하기
문제 7.10 짝수-홀수 병합 구현하기
문제 7.11 단순 연결리스트가 회문인지 확인하기
문제 7.12 리스트의 피벗 구현하기
문제 7.13 리스트로 표현된 정수의 덧셈

8장 스택과 큐
문제 8.1 최댓값 찾는 API로 스택 구현하기
문제 8.2 RPN 수식 계산하기
문제 8.3 문자열이 올바른 형태인지 확인하기
문제 8.4 경로 이름 표준화하기
문제 8.5 노을이 보이는 건물 찾기
문제 8.6 깊이 순서대로 이진 트리의 노드 구하기
문제 8.7 환형 큐 구현하기
문제 8.8 스택을 사용해서 큐 구현하기
문제 8.9 최댓값 API로 큐 구현하기

9장 이진 트리
문제 9.1 이진 트리의 높이가 균형 잡혀 있는지 확인하기
문제 9.2 이진 트리가 대칭인지 확인하기
문제 9.3 이진 트리의 최소 공통 조상 구하기
문제 9.4 노드에 부모를 가리키는 정보가 있을 때 최소 공통 조상 구하기
문제 9.5 이진 트리에서 루트-단말 노드 경로의 합 구하기
문제 9.6 주어진 합에 해당하는 루트-단말 노드 경로 구하기
문제 9.7 재귀를 사용하지 않고 중위 순회 구현하기
문제 9.8 재귀를 사용하지 않고 전위 순회 구현하기
문제 9.9 중위 순회에서 k번째 노드 구하기
문제 9.10 후임 노드 구하기
문제 9.11 O(1) 공간을 사용해서 중위 순회 구현하기
문제 9.12 순회한 데이터를 사용해 이진 트리 복원하기
문제 9.13 마커가 포함된 전위 순회를 사용해 이진 트리 복원하기
문제 9.14 이진 트리의 단말 노드에서 연결리스트 구성하기
문제 9.15 이진 트리의 테두리 구하기
문제 9.16 오른쪽 형제 트리 구하기

10장 힙
문제 10.1 정렬된 파일 합치기
문제 10.2 증가했다가 감소하는 배열 정렬하기
문제 10.3 거의 정렬된 배열 정렬하기
문제 10.4 k개의 가까운 별 찾기
문제 10.5 실시간으로 주어진 데이터의 중앙값 찾기
문제 10.6 최대힙에서 가장 큰 원소 k개 구하기

11장 탐색
문제 11.1 정렬된 배열에서 k가 첫 번째로 등장한 위치 찾기
문제 11.2 정렬된 배열에서 인덱스와 값이 같은 엔트리 찾기
문제 11.3 환형으로 정렬된 배열에서 탐색하기
문제 11.4 정수의 제곱근 구하기
문제 11.5 실수의 제곱근 구하기
문제 11.6 정렬된 2차원 배열에서 탐색하기
문제 11.7 최솟값과 최댓값을 동시에 찾기
문제 11.8 k번째로 큰 원소 찾기
문제 11.9 빠진 IP 주소 찾기
문제 11.10 중복된 원소와 빠진 원소 찾기

12장 해시 테이블
문제 12.1 회문 순열 확인하기
문제 12.2 익명의 편지 작성하기
문제 12.3 ISBN 캐시 구현하기
문제 12.4 최적화된 최소 공통 조상 찾기
문제 12.5 배열에서 반복되는 가장 가까운 원소 찾기
문제 12.6 모든 값을 포함하는 가장 작은 부분 배열 구하기
문제 12.7 모든 값을 순차적으로 포함하는 가장 작은 부분배열 구하기
문제 12.8 서로 다른 엔트리를 포함하는 가장 긴 부분배열 구하기
문제 12.9 가장 긴 구간의 길이 찾기
문제 12.10 모든 문자열 분해하기
문제 12.11 콜라츠 추측 테스트
문제 12.12 체스에서 해시 함수 구현하기

13장 정렬
문제 13.1 정렬된 두 배열의 교집합 구하기
문제 13.2 정렬된 두 배열 합치기
문제 13.3 성을 제외한 중복되는 이름 제거하기
문제 13.4 동전으로 만들 수 없는 가장 작은 숫자 구하기
문제 13.5 달력 만들기
문제 13.6 구간 합치기
문제 13.7 구간의 합 구하기
문제 13.8 반복되는 원소가 많은 배열, 정렬하고 나누기
문제 13.9 팀 사진 찍는 날 - 1
문제 13.10 리스트를 빠르게 정렬하는 알고리즘 구현하기
문제 13.11 급여의 한계 구하기

14장 이진 탐색 트리
문제 14.1 이진 트리가 이진 탐색 트리의 속성을 만족하는지 확인하기
문제 14.2 이진 탐색 트리에서 주어진 값보다 큰 첫 번째 키 찾기
문제 14.3 이진 탐색 트리에서 가장 큰 k개의 원소 찾기
문제 14.4 이진 탐색 트리에서 최소 공통 조상 구하기
문제 14.5 순회한 데이터를 통해 이진 탐색 트리 재구성하기
문제 14.6 세 개의 정렬된 배열에서 가장 가까운 원소 찾기
문제 14.7 a+b√2 꼴의 숫자 나열하기
문제 14.8 정렬된 배열에서 높이가 최소인 이진 탐색 트리 만들기
문제 14.9 이진 탐색 트리의 노드 세 개가 완전히 정렬되어 있는지 확인하기
문제 14.10 범위 확인 문제
문제 14.11 신용 정보 관리 서버 설계하기

15장 재귀
문제 15.1 하노이 타워 문제
문제 15.2 n개의 퀸이 서로 공격하지 못하는 상황을 모두 나열하기
문제 15.3 순열 구하기
문제 15.4 멱집합 구하기
문제 15.5 크기가 k인 모든 부분 집합 생성하기
문제 15.6 괄호의 짝이 맞는 문자열 생성하기
문제 15.7 회문 분해하기
문제 15.8 이진 트리 생성하기
문제 15.9 스도쿠 해법 구현하기
문제 15.10 그레이 코드 구하기

16장 동적 프로그래밍
문제 16.1 가능한 점수가 몇 개인지 구하기
문제 16.2 레벤슈타인 거리 구하기
문제 16.3 2차원 배열을 순회할 수 있는 방법의 개수 구하기
문제 16.4 이항계수 구하기
문제 16.5 2차원 배열에서 수열 찾기
문제 16.6 배낭 문제
문제 16.7 BEDBATHANDBEYOND.COM 문제
문제 16.8 삼각형에서 무게가 가장 작은 경로 찾기
문제 16.9 합이 최대가 되도록 동전 선택하기
문제 16.10 계단을 올라가는 방법의 개수 구하기
문제 16.11 텍스트를 예쁘게 배치하기
문제 16.12 감소하지 않는 가장 긴 부분 수열 찾기

17장 그리디 알고리즘과 불변식
문제 17.1 최적의 업무 할당 구하기
문제 17.2 기다리는 시간을 최소화하기
문제 17.3 모든 구간을 커버하기
문제 17.4 세 개의 원소를 합해 원하는 숫자를 얻을 수 있는지 확인하기
문제 17.5 다수 원소 찾기
문제 17.6 주유소 문제
문제 17.7 수직선 쌍에 담을 수 있는 물의 최대 양 구하기
문제 17.8 스카이라인에서 가장 큰 직사각형 구하기

18장 그래프
문제 18.1 미로 찾기
문제 18.2 불 행렬 색칠하기
문제 18.3 닫힌 지역 찾기
문제 18.4 데드락 찾기
문제 18.5 그래프 복제하기
문제 18.6 와이어로 회로 연결하기
문제 18.7 문자열을 다른 문자열로 바꾸기
문제 18.8 팀 사진 찍는 날 - 2

19장 병렬 컴퓨팅
문제 19.1 다중 스레드 사전을 위한 캐시 구현하기
문제 19.2 두 개의 스레드가 동기화되지 않은 채 번갈아 수행되는 경우 분석하기
문제 19.3 두 개의 스레드가 번갈아 수행될 때 동기화 구현하기
문제 19.4 스레드 풀 구현하기
문제 19.5 데드락 피하기
문제 19.6 읽는자-쓰는자 문제
문제 19.7 쓰는 작업에 선호도가 존재할 때 읽는자-쓰는자 문제
문제 19.8 타이머 클래스 구현하기
문제 19.9 콜라츠의 추측 병렬로 확인하기

3부 특정 도메인 문제
20장 설계 문제
문제 20.1 맞춤법 검사 설계
문제 20.2 스테밍 문제의 해법 설계하기
문제 20.3 표절 찾기
문제 20.4 속성에 따른 사용자의 쌍
문제 20.5 저작권 침해를 발견하는 시스템 설계하기
문제 20.6 TEX 설계하기
문제 20.7 검색 엔진 설계하기
문제 20.8 페이지 순위 매기기
문제 20.9 테라 정렬 및 페타 정렬 설계하기
문제 20.10 분산 서비스 조절하기
문제 20.11 확장 가능한 우선순위 시스템 설계하기
문제 20.12 모자이크 사진 만들기
문제 20.13 마일리지 이동 구현하기
문제 20.14 사진 공유 서비스 구현하기
문제 20.15 온라인 광고 시스템 설계하기
문제 20.16 추천 시스템 설계하기
문제 20.17 많은 파일을 분산시킬 수 있는 최적화된 방법 설계하기
문제 20.18 월드 와이드 웹 설계하기
문제 20.19 사진 공유 앱의 하드웨어 비용 추측하기

21장 언어 관련 질문
문제 21.1 JVM
문제 21.2 throw vs. throws
문제 21.3 final vs. finally vs. finalizer
문제 21.4 equals() vs. ==
문제 21.5 equals()와 hashCode()의 관계
문제 21.6 List vs. ArrayList vs. LinkedList
문제 21.7 String vs. StringBuilder
문제 21.8 자동 박싱
문제 21.9 정적 초기화

22장 객체 지향 설계
문제 22.1 템플릿 메서드 패턴 vs. 전략 패턴
문제 22.2 옵서버 패턴
문제 22.3 푸시 옵서버 패턴 vs. 풀 옵서버 패턴
문제 22.4 싱글턴 vs. 플라이웨이트
문제 22.5 클래스 어댑터 vs. 객체 어댑터
문제 22.6 생성 패턴
문제 22.7 라이브러리와 설계 패턴

23장 프로그래밍 관련 도구
문제 23.1 버전 관리 시스템의 병합
문제 23.2 버전 관리 시스템의 훅
문제 23.3 스크립트가 더 효율적인가?
문제 23.4 스크립트 언어의 다형성
문제 23.5 의존성 분석
문제 23.6 Ant vs. Maven
문제 23.7 SQL과 NoSQL
문제 23.8 데이터베이스 정규화
문제 23.9 SQL 설계
문제 23.10 IP vs. TCP vs. HTTP
문제 23.11 HTTPS
문제 23.12 DNS

4부 고난도 문제
24장 고난도 문제
문제 24.1 최대공약수 구하기
문제 24.2 배열에 존재하지 않는 가장 작은 양의 정수 찾기
문제 24.3 주식 k번 사고팔기
문제 24.4 하나를 뺀 나머지를 모두 곱했을 때의 최댓값 구하기
문제 24.5 가장 길게 증가하는 부분배열을 구하기
문제 24.6 배열 회전시키기
문제 24.7 룩에게 공격당하는 위치 판별하기
문제 24.8 텍스트 줄 맞추기
문제 24.9 리스트 지핑 구현하기
문제 24.10 게시글 목록 복사하기
문제 24.11 유효한 괄호 중에 가장 긴 부분 문자열 구하기
문제 24.12 최대 슬라이딩 윈도 계산하기
문제 24.13 재귀 없이 후위 순회 구현하기
문제 24.14 합당한 보너스 구하기
문제 24.15 길이를 알 수 없는 정렬된 배열에서 탐색하기
문제 24.16 두 개의 정렬된 배열에서 탐색하기
문제 24.17 n이 크고 k가 작은 경우, k번째로 큰 원소 찾기
문제 24.18 한 번만 등장한 원소 찾기
문제 24.19 가장 많은 점을 지나는 선 구하기
문제 24.20 정렬된 이중 연결리스트를 이진 탐색 트리로 변환하기
문제 24.21 이진 탐색 트리를 정렬된 이중 연결리스트로 변환하기
문제 24.22 두 개의 이진 탐색 트리 합치기
문제 24.23 정규표현식 매칭 구현하기
문제 24.24 연산자 조합으로 원하는 결괏값을 만들 수 있는지 확인하기
문제 24.25 역의 개수
문제 24.26 스카이라인 그리기
문제 24.27 눈금이 지워진 비커로 우유의 양 측정하기
문제 24.28 환형 배열에서 최대 부분배열의 합 구하기
문제 24.29 임계 높이 구하기
문제 24.30 최대 2차원 부분배열 찾기
문제 24.31 허프만 코드 구하기
문제 24.32 가둬둔 물의 양 구하기
문제 24.33 일정 횟수 이상 등장한 단어 찾기
문제 24.34 합이 k를 넘지 않는 가장 긴 부분배열 찾기
문제 24.35 고속도로에 구간 추가하기
문제 24.36 차익 거래가 가능한지 테스트하기

5부 표기법과 찾아보기
아드난 아지즈 (Adnan Aziz)

페이스북에서 연구과학자로 일하고 있다. 텍사스 주립대학교 오스틴 캠퍼스에서 전기, 컴퓨터 공학과의 교수로 재직하며 연구 및 응용 알고리즘 수업을 가르친 적이 있다. 인도 공과 대학 칸푸르에서 학사 학위를 받았고, 캘리포니아 주립대학교 버클리 캠퍼스에서 박사 학위를 받았다. 또한 구글, 퀄컴, IBM, 몇몇 소프트웨어 관련 스타트업 회사에서 일한 경험이 있다. 알고리즘 설계를 하지 않을 때는 주로 세 아이와 시간을 보낸다.

쭝시엔 리 (Tsung-hsien Lee)

우버(Uber)에서 수석 소프트웨어 엔지니어로 일하고 있다. 국립 칭화 대학교에서 학사 및 석사 학위를 받았다. 페이스북에서 소프트웨어 엔지니어 인턴으로 일했고, 구글에서 일한 적이 있다. 알고리즘을 설계하고 구현하는 일에 열정을 느끼며, 삶의 모든 면에 알고리즘을 적용하는 것을 즐긴다. 2014년, 2015년에 구글 코드잼 대회 준비를 도왔던 일에 특히 자부심을 가지고 있다.

아미트 프라카시 (Amit Prakash)

ThoughtSpot라는 스타트업의 공동 창업자이며 최고 기술 책임자로 실리콘밸리에서 일하고 있다. 텍사스 주립대학교 오스틴 캠퍼스에서 박사 학위를 받았으며, 인도 공과 대학 칸푸르에서 학사 학위를 받았다. 구글에서 온라인 광고 분야에서 발생하는 문제를 머신 러닝으로 해결하는 일을 담당했으며, 마이크로소프트의 웹 검색 팀에서도 일했다. 평소에는 비즈니스 인텔리전스를 개선하거나 퍼즐, 영화, 여행을 즐기거나 Nidhi와 Aanya와 모험하는 것을 즐긴다.
등록된 서평이 없습니다.
 
전체평균(0)
회원평점   회원서평수 0
인사이트 출판사의 신간
밑바닥부터 만드는 컴파일러 in Go
토르슈텐 발, 박재석 역 저
0원
(0%↓+5%)
 
안드로이드 프로그래밍 Next Step(프로그래밍인사이트)
노재춘 지음 저
22,500원
(10%↓+5%)
 
아두이노 FOR 인터랙티브 뮤직
채진욱 지음 저
15,100원
(10%↓+5%)
 
RxJava를 활용한 리액티브 프로그래밍(프로그래밍인사이트)
토마스 누르키비치.벤 크리스텐센 지음, 김인태 옮김 저
27,000원
(10%↓+5%)
 
레고 파워 펑션 아이디어 북 세트(전2권)
이소가와 요시히토 지음, 공민식 옮김 저
35,100원
(10%↓+5%)
 
이메일주소수집거부