📌 LeetCode [771]: Jewels and Stones
🔗 문제 링크
문제 설명 📄
문자열 jewels
와 stones
가 주어집니다.jewels
는 보석을 나타내고, stones
는 보석과 돌이 섞여있는 문자열입니다.stones
에 포함된 보석의 개수를 반환하세요.
문제 접근 방식 📋
- 보석과 돌의 빈도 계산:
Counter
를 사용하여stones
의 각 문자의 빈도를 저장.
- 보석 개수 합산:
jewels
에 포함된 각 문자를 순회하면서,stones
에서 해당 보석의 개수를 합산.
- 최종 결과 반환:
- 합산한 개수를 반환.
Solution 💻
from collections import Counter
class Solution:
def numJewelsInStones(self, jewels: str, stones: str) -> int:
count = Counter(stones)
answer = 0
for jewel in jewels:
answer += count[jewel]
return answer
시간 복잡도 분석 ⏲️
- 시간 복잡도: (O(m + n))
- (m):
stones
의 길이 (Counter 생성). - (n):
jewels
의 길이 (보석 순회).
- (m):
공간 복잡도 분석 🗄️
- 공간 복잡도: (O(m))
Counter
객체가stones
의 빈도를 저장.
'알고리즘' 카테고리의 다른 글
LeetCode [345]: Reverse Vowels of a String (0) | 2024.12.16 |
---|---|
LeetCode [876]: Middle of the Linked List (0) | 2024.12.15 |
LeetCode [485]: Max Consecutive Ones (0) | 2024.12.13 |
LeetCode [867]: Transpose Matrix (0) | 2024.12.12 |
LeetCode [1480]: Running Sum of 1d Array (1) | 2024.12.11 |