본문 바로가기
+ 도서 오류 정보

[정오표] 파이썬 알고리즘 인터뷰

by 책만 2020. 7. 21.

# 2020년 10월 30일 전자책 1.0 정오표

 

p85. enumerate 설명 1째줄

순서가 있는 자료형
->

여러 가지 자료형

※ 이와 관련한 자세한 설명은 #73 이슈를 읽어주시기 바랍니다.

 

p185. 코드 중 아래에서 2째줄

results.append((nums[i], nums[j], nums[k]))
->
results.append([nums[i], nums[j], nums[k]])

p188. 코드 중 10째줄

results.append((nums[i], nums[left], nums[right]))
->
results.append(

[nums[i], nums[left], nums[right]])

※ 이와 관련한 자세한 설명은 #53 이슈를 읽어주시기 바랍니다.

 

p307. 본문 1째 줄

>>> k번 이상 등장하는

->

>>> 상위 k번 이상 등장하는

p307. 풀이 1째 줄

>>> k번반큼 추출하면

->

>>> 상위 k번만큼 추출하면

p309. 풀이 1째 줄

>>> k 빈도 이상의

->

>>> 상위 k번만큼의

※ 이와 관련한 자세한 설명은 #51 이슈를 읽어주시기 바랍니다.

 

p318. 본문 3째 줄

그림 12-1와 같은 -> 

그림 12-2와 같은

※ 이와 관련한 자세한 설명은 #64 이슈를 읽어주시기 바랍니다.

 

p324. 밑에서 8째 줄

if not w in discovered:->if w not in discovered:

※ 이와 관련한 자세한 설명은 #65 이슈를 읽어주시기 바랍니다.

 

pp.338-340 33. '전화번호 문자 조합' 문제 풀이 관련

※ 본문의 설명이 틀린 것은 아니지만, 좀 더 효율적인 풀이를 보시려면 #91 이슈를 읽어주시기 바랍니다.

 

p366. 5째 줄

그림 12-8과 같이-> 그림 12-18과 같이

 

p470. 13째 줄

['d', 'dcbbc', 'bbcd', 'cbcd', 'cbbc', 'dcbb']->['d', 'cbbcd', 'dcbb', 'dcbc', 'cbbc', 'bbcd']

※ 이와 관련한 자세한 설명은 #72 이슈를 읽어주시기 바랍니다.

 

p475. 본문 4째 줄

클래스와 독립적으로 함수로서의 -> 

클래스와 독립적 함수로서의

※ 이와 관련한 자세한 설명은 #81 이슈를 읽어주시기 바랍니다.

 

p537. 풀이 1째 줄

행column -> 

열column

※ 이와 관련한 자세한 설명은 #80 이슈를 읽어주시기 바랍니다.

 

p549. 밑에서 8째 줄

>>> 5 & -4

->

>>> 5 -4

※ 이와 관련한 자세한 설명은 #49 이슈를 읽어주시기 바랍니다.

 

p572. 본문 3째 줄

이 경우 시간 복잡도는 O(n)이다 -> 이 경우 시간 복잡도는 O(k*n)이다

※ 이와 관련한 자세한 설명은 #67 이슈를 읽어주시기 바랍니다.

 

p613. 그림 22-4 중 하단 우측 상자

[1,5] -> [1,1]

※ 이와 관련한 자세한 설명은 #57 이슈를 읽어주시기 바랍니다.

 

p630. 풀이 3 타뷸레이션 코드 3-4행에 중간 1행 추가

def fib(self, N: int) -> int:

    self.dp[0] = 0
    self.dp[1] = 1

 

p645. 3행

dp[0], dp[1] = nums[0], max(

dp[0], dp[1])

->

dp[0], dp[1] = nums[0], max(nums[0], nums[1])

※ 이와 관련한 자세한 설명은 #58 이슈를 읽어주시기 바랍니다.

 

# 2020년 7월 15일 초판 1쇄본 정오표 #

p110. 본문 1~2째 줄

집합은 딕셔너리 동일하게 -> 집합은 딕셔너리 동일하게

 

p260. 밑에서 7째 줄

리어Rear 포인터가 원래의 프론트 포인터 자리까지 -> rear 포인터가 원래의 front 포인터 자리까지

 

p274. 27번 문제의 [입력] 부분 

-> 전체 1개의 박스로 묶여야 합니다.

● 입력

[

  1->4->5,

  1->3->4,

  2-5

]

 

 

p299. 첫 번째 코드블록에서 첫 행 'B' : 1, 빠져야 합니다.

 

{     

    'a': 1,

    'A': 2,

    'b': 4

}

 

p331. [예제 2] 출력 값 1 오류

[예제 2]

● 출력

1 -> 3

 

p399. 3번째 문단 1째 줄

이 그림에서 여기서 -> 이 그림에서 

 

p552. 밑에서 2째 줄

침체기에 들었다. -> 침체기에 빠들었다.

 

 

# 2020년 8월 5일 2쇄 정오표 # (1쇄본도 확인 바랍니다)

 

p56. 자바 코드 마지막 행 중괄호 누락

sum += i;

->
sum += i;
}
※ 이와 관련한 자세한 설명은 #46 이슈를 읽어주시기 바랍니다.
 

p85. enumerate 설명 1째줄

순서가 있는 자료형
->

여러 가지 자료형

※ 이와 관련한 자세한 설명은 #73 이슈를 읽어주시기 바랍니다.

 

p101. 4째 줄 / 6째 줄

상수항은 -> 계수는

 

p101. 아래에서 7째 줄

최댓값 또는 최솟값 경우가 -> 최댓값 또는 최솟값을 찾는 경우가

※ 이와 관련한 자세한 설명은 #47 이슈를 읽어주시기 바랍니다.

 

p152. 7째 줄

return max(counts , key=count.get) -> return max(counts, key=counts.get)

 

p154. 풀이1의 전체 코드 中 마지막 행 수정

return anagrams.values() -> return list(anagrams.values())

※ 여기서 수정된 반환형과 관련한 자세한 설명은 #6 이슈를 읽어주시기 바랍니다.

 

p161. 본문 두 번째 코드 블록의 3, 4행 중 "s, " 삭제

expand(s, i, i + 1), 

expand(s, i, i + 2), 

->
expand(i, i + 1), 
expand(i, i + 2), 
 

p161. 하단 박스 4행

while left >= 0 and right <= len(s) and s[left] == s[right - 1]:
->
while left >= 0 and right < len(s) and s[left] == s[right]:
※ 이와 관련한 자세한 설명은 #38 이슈를 읽어주시기 바랍니다.
 

p163. 아래에서 3째 줄

값이 128이하라면 -> 값이 127이하라면

※ 이와 관련한 자세한 설명은 #45 이슈를 읽어주시기 바랍니다.
 

p174. 본문 두 번째 코드 블록의 마지막 행

return nums.index(n), nums[i + 1:].index(complement) + (i + 1)
->
return 

[nums.index(n), nums[i + 1:].index(complement) + (i + 1)]

※ 이와 관련한 자세한 설명은 #32 이슈를 읽어주시기 바랍니다.
 

p175. 본문 코드 블록의 마지막 행

return nums.index(num), nums_map[target - num]
->
return 

[

i, nums_map[target - num]

]

※ 이와 관련한 자세한 설명은 #39 이슈를 읽어주시기 바랍니다.
 

p177. 풀이5의 전체 코드 中 주석 위치 바뀜

(상략) 

    while not left == right:

        # 합이 타겟보다 작으면 왼쪽 포인터를 오른쪽으로

        if nums[left] + nums[right] < target:

            left += 1

        # 합이 타겟보다 크면 오른쪽 포인터를 왼쪽으로

 

        elif nums[left] + nums[right] > target:

(하략)

 

p177. 풀이5의 전체 코드 中 마지막 행

return left, right 

-> 

return 

[

left, right

]

 

p185. 전체 코드 중 1행: 예약어 def 오타 (d 누락)

ef threeSum(self, nums: List[int]) -> List[List[int]]:

->

def threeSum(self, nums: List[int]) -> List[List[int]]:

 

p185. 아래에서 2째줄

results.append((nums[i], nums[j], nums[k]))

->

results.append([nums[i], nums[j], nums[k]])

p188. 코드 중 10째줄

results.append((nums[i], nums[left], nums[right]))

->

results.append(

[nums[i], nums[left], nums[right]])

※ 이와 관련한 자세한 설명은 #53 이슈를 읽어주시기 바랍니다.

 

 

p211. [다중 할당] 문법 참고 박스: 밑에서 5째 줄

파이썬에는 원시  타입이 존재하지 않다. -> ~ 존재하지 않다.

 

p216. 표 안 우선순위 14번 줄

\| -> |

 

p222. 본문 첫 번째 코드 블록의 1행 중

def toList(self, node: ListNode) -> ListNode

->

def toList(self, node: ListNode) -> List:

 

p222. 본문 두 번째 코드 블록의 1행 중

def toReversedLinkedList(self, result: ListNode) -> ListNode:

->

def toReversedLinkedList(self, result: str) -> ListNode:

 

p223. 박스 안 13째 줄

def toList(self, node: ListNode) -> ListNode

->

def toList(self, node: ListNode) -> List:

 

p224. 박스 안 2째 줄

def toReversedLinkedList(self, result: ListNode) -> ListNode:

->

def toReversedLinkedList(self, result: str) -> ListNode:

※ 이와 관련한 자세한 설명은 #31 이슈를 읽어주시기 바랍니다.

 

p282. 밑에서 2-3째 줄

10개의 공간 중 1개밖에 -> 9개의 공간 중 1개밖에

 

p292. 두 번째 문단 첫 줄

삭제 emove()의 -> 삭제 remove()

 

p307. 본문 1째 줄

>>> k번 이상 등장하는

->

>>> 상위 k번 이상 등장하는

 

p307. 풀이 1째 줄

>>> k번반큼 추출하면

->

>>> 상위 k번만큼 추출하면

 

p309. 풀이 1째 줄

>>> k 빈도 이상의

->

>>> 상위 k번만큼의

※ 이와 관련한 자세한 설명은 #51 이슈를 읽어주시기 바랍니다.

p318. 본문 3째 줄

그림 12-1와 같은 -> 

그림 12-2와 같은

※ 이와 관련한 자세한 설명은 #64 이슈를 읽어주시기 바랍니다.

 

p324. 밑에서 8째 줄

if not w in discovered:->if w not in discovered:

※ 이와 관련한 자세한 설명은 #65 이슈를 읽어주시기 바랍니다.

 

pp.338-340 33. '전화번호 문자 조합' 문제 풀이 관련

※ 본문의 설명이 틀린 것은 아니지만, 좀 더 효율적인 풀이를 보시려면 #91 이슈를 읽어주시기 바랍니다.

 

p347. 본문 첫 번째 코드 블록의 3행 아래 행 추가

p347. 박스 안 6째 줄 아래 행 추가

results.append(elements[:])

->

results.append(elements[:])

return

※ 이와 관련한 자세한 설명은 #30 이슈를 읽어주시기 바랍니다.

 

p350. 박스 안 6째 줄

60에서 6을 나눈 6/60=10이 -> 60 6으로 나눈 60/6=10이

 

p366. 5째 줄

그림 12-8과 같이-> 그림 12-18과 같이

 

p368. 풀이 전체 코드 중 15행

# 이미 방문했던 노드이면 False -> # 이미 방문했던 노드이면 True

 

p450. 아래에서 10째 줄

while parent >= 0: -> while parent > 0: 

※ 이와 관련한 자세한 설명은 #48 이슈를 읽어주시기 바랍니다.
 

p456. 풀이 전체 코드 중 8행

p457. 첫 번째 박스 안 6째 줄

for _ in range(k):

->

for _ in range(1, k):

※ 이와 관련한 자세한 설명은 #30 이슈를 읽어주시기 바랍니다.

 

p470. 13째 줄

['d', 'dcbbc', 'bbcd', 'cbcd', 'cbbc', 'dcbb']->['d', 'cbbcd', 'dcbb', 'dcbc', 'cbbc', 'bbcd']

※ 이와 관련한 자세한 설명은 #72 이슈를 읽어주시기 바랍니다.

 

p473. 박스 안 23째 줄 삭제

node = node.children[char]

 

node.val = char

->

node = node.children[char]

※ 이와 관련한 자세한 설명은 #40 이슈를 읽어주시기 바랍니다.

 

p475. 본문 4째 줄

클래스와 독립적으로 함수로서의 -> 

클래스와 독립적 함수로서의

※ 이와 관련한 자세한 설명은 #81 이슈를 읽어주시기 바랍니다.

 

p502. 아래에서 10째 줄

cur보다 작은 상태라면 -> cur보다  상태라면

※ 이와 관련한 자세한 설명은 #41 이슈를 읽어주시기 바랍니다.
 

p520. 풀이 4 첫 줄

이진 검색을 사용하 풀었지만 -> 이진 검색을 사용하 풀었지만

※ 이와 관련한 자세한 설명은 #44 이슈를 읽어주시기 바랍니다.
 

p537. 풀이 1째 줄

행column -> 

열column

※ 이와 관련한 자세한 설명은 #80 이슈를 읽어주시기 바랍니다.

 

p549. 밑에서 8째 줄

>>> 5 & -4

->

>>> 5 -4

※ 이와 관련한 자세한 설명은 #49 이슈를 읽어주시기 바랍니다.
 

p572. 본문 3째 줄

이 경우 시간 복잡도는 O(n)이다 -> 이 경우 시간 복잡도는 O(k*n)이다

※ 이와 관련한 자세한 설명은 #67 이슈를 읽어주시기 바랍니다.

 

p613. 그림 22-4 중  하단 우측 상자

[1,

5] -> [1,1]

※ 이와 관련한 자세한 설명은 #57 이슈를 읽어주시기 바랍니다.

 

p630. 풀이 3 타뷸레이션 코드 3-4행에 중간 1행 추가

def fib(self, N: int) -> int:

    self.dp[0] = 0
    self.dp[1] = 1

 

p640. 그림 23-9 첫 번째 우측 자식 노드 오타 (그림 내 빨간 글씨 부분)

n-1 계단 -> n-2 계단

 

p645. 3행

dp[0], dp[1] = nums[0], max(

dp[0], dp[1])

->

dp[0], dp[1] = nums[0], max(nums[0], nums[1])

※ 이와 관련한 자세한 설명은 #58 이슈를 읽어주시기 바랍니다.

 

p692. 밑에서 3째 줄

간단히  단위로 -> 간단히 단위로

 

p693. 초 -> 분 일괄 변경

 

p694. 박스 안 3 째 줄

1 전 도착 -> 1  전 도착

 

p694. 박스 안 10 째 줄

, 초로 다시 변경 -> , 분으로 다시 변경

※ 이와 관련한 자세한 설명은 #34 이슈를 읽어주시기 바랍니다.

 

댓글13

  • 정오 2020.09.02 14:27

    안녕하세요 오탈자가 있어 댓글남깁니다.

    p.101 4th line : 상수항은 무시한다
    p.101 6th line : 상수항은 무시하며

    "상수항"이라는 단어의 수학적 정의에 따르면
    예시로 든 4n^2 + 3n + 4 에서 4n^2, 3n, 4 의 세 가지 항 중에서 4 라는 항을 의미하며,

    본 글에서 의도하는 바인 4n^2 에서의 4 라는 숫자는
    "최고차항의 계수"로 표현하는 것이 수학적으로 올바른 표현으로 보입니다.
    답글

    • Favicon of https://www.onlybook.co.kr 책만 2020.09.15 09:54 신고

      안녕하세요. 독자님.

      말씀하신 사항이 정확히 맞습니다. 내용 설명에서 표현에 오류가 있었음에 사과 말씀 드리며, 말씀하신 사항은 정오표에 등록해두겠습니다.

      저희 책 꼼꼼히 읽고 의견 남겨주셔서 감사합니다.

  • 219쪽 2020.10.06 16:16

    219쪽 풀이
    return reverse(head)에서 오류가 나는데 정오 확인해주실 수 있나요?
    reverse는 인자를 2개 받아야하는데 head 하나밖에 받고 있지 않아서 나는 오류인거같은데
    답글

    • Favicon of https://www.onlybook.co.kr 책만 2020.10.06 16:22 신고

      안녕하세요. 독자님.
      관련 문의는 깃허브 이슈 트래커에 올려주시면 좀 더 빠른 피드백과 토의를 이어가실 수 있을 것 같습니다. 정오사항이 확인되면 여기 정오표 페이지에도 업데이트 하겠습니다. 감사합니다.

      https://github.com/onlybooks/algorithm-interview/issues

  • 216쪽 2020.10.12 21:17

    안녕하세요! 좋은 책 써주셔서 잘 읽고 있습니다.
    216쪽의 표 8-1에서 14번째 우선 순위에 비트 연산 OR 연산자가
    \|로 표기되어 있는데 \(backslash)는 이스케이핑인가요?
    |로만 표기되어야 하지않나 싶어서 글 남깁니다.
    감사합니다 : )
    답글

    • Favicon of https://www.onlybook.co.kr 책만 2020.10.13 09:58 신고

      안녕하세요. 독자님.

      말씀하신 사항이 정확히 맞습니다. 내용 오류가 있었음에 사과 말씀 드리며, 말씀하신 사항은 정오표에 등록해두겠습니다.

      저희 책 꼼꼼히 읽고 의견 남겨주셔서 감사합니다. 다른 문의사항 있으시면 이슈트레커(공개 질의 페이지)에서도 좀 더 빠른 피드백과 토의를 이어가실 수 있습니다

      https://github.com/onlybooks/algorithm-interview/issues

    • winDy 2020.12.13 07:44

      정오표에 쓰실때 12번째 라고 쓰셨네요. 다시 고쳐주세요. ^^

    • Favicon of https://www.onlybook.co.kr 책만 2020.12.14 11:38 신고

      안녕하세요. 독자님.
      알려주신 사항을 제대로 반영하지 못해 죄송합니다.
      "우선순위 14번"으로 변경하였습니다.

      시간내어 확인해주신 내용에 대해 감사의 말씀을 전합니다.
      이후 정오사항도 꾸준히 업데이트 하겠습니다.
      감사합니다.

  • 44쪽 2021.01.13 19:37

    삼성전자에서 sw역량 테스트를 할 때 파이썬을 도입한지 꽤 오래된 것으로 알고 있습니다.(대략 2018년?)
    그러나 '파이썬 알고리즘 인터뷰' 책 44p에 보면 파이썬은 사용할 수 없다고 나와있네요.
    이번 2020년 하반기 공채에서 서류전형을 통과하고 SW역량 테스트에 응시한 많은 학생들 중 파이참을 이용해서 파이썬으로 시험을 치를 학생들이 많은 것으로 알고있습니다.
    삼성채용 홈페이지 FAQ에 들어가서 'sw역량테스트란 무엇인가요'에 대한 질의응답을 보시면 파이썬은 사용 가능한 것으로 확인이 됩니다.
    다만 삼성에서 운영하는 sw expert academy를 통해 상시 역량테스트를 접수해 B형을 응시할 때는 c,c++,java만 사용할 수 있고, C형을 응시할 때는 c,c++만 사용할 수 있습니다.
    답글

    • Favicon of https://www.onlybook.co.kr 책만 2021.01.14 14:20 신고

      안녕하세요 독자님. 책에도 명시했지만, 원고를 작성하고 출간하는 시점에 확인했던 사항이라 업데이트가 되지 못한 점이 있는 것 같습니다. 알려주셔서 감사합니다. 좀 더 확인 후에 증쇄시에 반영할지 여부에 대해서도 논의해보겠습니다. 감사합니다.

    • 44쪽 2021.01.14 15:23

      네, 알겠습니다
      확정되면 말씀해주세요

  • ㅅㅇ 2021.01.19 20:25

    p.433 풀이3에 node.val이 L과 R 사이일때 Stack에 left, right를 append해주는 부분이 빠져있는거 같은데
    정오표에도 나와있지 않아 댓글 남깁니다~
    답글

    • Favicon of https://www.onlybook.co.kr 책만 2021.01.22 10:01 신고

      안녕하세요. 독자님.
      관련 문의는 저자분과 확인이 필요한 사항으로 깃허브 이슈 트래커에 올려주시면 좀 더 빠른 피드백과 토의를 이어가실 수 있을 것 같습니다. 정오사항이 확인되면 여기 정오표 페이지에도 업데이트 하겠습니다. 감사합니다.

      https://github.com/onlybooks/algorithm-interview/issues