카테고리 없음

[LeetCode] 771. Jewels and Stones - 보석과 돌

AI 꿈나무 2020. 12. 10. 20:38
반응형

LeetCode 771. Jewels and Stones - 보석과 돌

 

Jewels and Stones - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

문제

 돌을 나타내는 S와 보석을 나타내는 J 가 주어졌을 때, 돌안에 보석이 몇개 들어있는지 알려주기

 

예시

 

풀이

1. 해시 테이블을 이용한 풀이

class Solution:
    def numJewelsInStones(self, J: str, S: str) -> int:
        freq = {}
        count = 0
        
        for char in S:
            if not freq[char]:
                freq[char] = 1
            else:
                freq[char] += 1
        
        for char in J:
            if freq[char]:
                count += freq[char]
        
        return count

 

2.  defaultdict 이용하기

class Solution:
    def numJewelsInStones(self, J: str, S: str) -> int:
        freq = collections.defaultdict()
        count = 0
        
        for char in S:
            freq[char] += 1
        
        for char in J:
            if char in freq:
                count += freq[char]
                
        return count

 

3. Count 이용하기

class Solution:
    def numJewelsInStones(self, J: str, S: str) -> int:
        freq = collections.Counter(S)
        count = 0
        
        for char in J:
            count += freqs[char]
        
        return count

 

4. 리스트 컴프리헨션으로 한줄로 풀어보기

class Solution:
    def numJewelsInStones(self, J: str, S: str) -> int:
        return sum(s in J for s in S)
반응형