본문 바로가기
Coding Test/LeetCode

[LeetCode] 771. Jewels and Stones [Python(파이썬)]

'파이썬 알고리즘 인터뷰'를 보고 작성한 글입니다. 😀

문제 👉 <Jewels and Stones - LeetCode>

1. 문제 (보석과 돌)

돌에 보석이 몇개 있는지 구해라. (대소문자 구분)

2. 풀이

  • 해시를 이용한 풀이
  • Counter를 이용한 풀이
  • 파이썬 스타일을 이용한 풀이

3. 코드

  • 해시를 이용한 풀이
from collections import defaultdict
class Solution:
    def numJewelsInStones(self, jewels: str, stones: str) -> int:
        ret, dic = 0, defaultdict(int)
        for s in stones:
            dic[s] += 1
        for j in jewels:
            ret += dic[j]
        return ret
  • Counter를 이용한 풀이
from collections import Counter
class Solution:
    def numJewelsInStones(self, jewels: str, stones: str) -> int:
        ret, cnt = 0, Counter(stones)
        for j in jewels:
            ret += cnt[j]
        return ret
  • 파이썬 스타일을 이용한 풀이
class Solution:
    def numJewelsInStones(self, jewels: str, stones: str) -> int:
        return sum(s in jewels for s in stones) 
  • 결과 :
방식 Status Runtime Memory Language
해시 [Accepted] 32 ms 14.3 MB python3
Counter [Accepted] 32 ms 14.1 MB python3
파이썬 스타일 [Accepted] 28 ms 14 MB python3


References


🏋🏻 개인적으로 공부한 내용을 기록하고 있습니다.
잘못된 부분이 있다면 과감하게 지적해주세요!! 🏋

댓글