책읽기

[파이썬 알고리즘 인터뷰][해시테이블] 보석과 돌

pythaac 2021. 7. 27. 21:44
이 글은 "파이썬 알고리즘 인터뷰 (박상길 지음)"을 읽고 주관적으로 요약한 글입니다. 

 

출처 : https://www.onlybook.co.kr/entry/algorithm-interview

 

문제 정의

입력받은 두 문자열 jewels, stones에 대해, jewels의 각 문자들이 stones에 포함된 개수의 합

 

책에서 구현된 코드

def numJewelsInStones(self, J: str, S: str) -> int:
    return sum(s in J for s in S)

 

기억해야할 기법

 

Python generator expression parentheses oddity

I want to determine if a list contains a certain string, so I use a generator expression, like so: g = (s for s in myList if s == myString) any(g) Of course I want to inline this, so I do: any((...

stackoverflow.com

 

내가 구현한 코드

def numJewelsInStones(jewels: str, stones: str) -> int:
    count = Counter(stones)
    return sum([ count[j] for j in jewels if count.get(j) ])
  • 해시 테이블을 사용하지 않은 책의 코드와 속도가 비슷함