🎶 hash table
- runtime이 달라지고 있지만, 실행 속도는 대체적으로 비슷...
- leetcode에서 발견한 새로운 장점: 여러 풀이를 각각 실행해 보고, 이전의 풀이를 언제든 소환할 수 있다.
https://leetcode.com/problems/jewels-and-stones/
class Solution:
def numJewelsInStones(self, jewels: str, stones: str) -> int:
freqs = {}
count = 0
for char in stones:
if char not in freqs:
freqs[char] = 1
else:
freqs[char] += 1
for char in jewels:
if char in freqs:
count += freqs[char]
return count
🔹stones에서 문자 단위로 하나씩 분리, 반복. 처음 등장한 문자라면 1, 기존에 있던 문자가 등장한다면 +1 -> 각 문자별 빈도 수 저장
class Solution:
def numJewelsInStones(self, jewels: str, stones: str) -> int:
freqs = collections.Counter(stones)
count = 0
for char in jewels:
count += freqs[char]
return count
class Solution:
def numJewelsInStones(self, jewels: str, stones: str) -> int:
return sum(stones in jewels for stones in stones)