반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- dfs #leetcode #python #graph #그래프
- python #백준 #9375 #패션왕 #신해빈
- exoplayer #mediaplayer #엑소플레이어 #안드로이드 #android
- 백준 #파이썬 #bfs #백트래킹 #1697 #숨바꼭질
- dfs #bfs #트리구조 #이진트리 #leetcode #python #파이썬
- 아스테리스크 #Asterisk #파이썬
- dfs #leetcode #python
- dfs #이진트리 #트리구조 #직렬화 #역직렬화 #파이썬 #리트코드 #leetcode #python
- handler #looper #thread #runnable #핸들러 #루퍼 #스레드 #러너블
- 코틀린 #Do it #깡샘 #안드로이드
- final #java #자바 #안드로이드
- AsyncTask #doinbackground #스레드 #thread #android #안드로이드
- dfs #bfs #트리구조 #이진트리 #leetcode #파이썬 #python
- gcd #최대공약수 #백준 #2981 #검문
- 2004 #조합 0의 개수 #백준
- dfs #python #leetcode
- python #백준 #2580 #스도쿠 #dfs #백트래킹
- 파이썬 #zip
- 리트코드 #팰린드롬 #파이썬
- leetcode #python #dfs #재귀
- 다익스트라 #dijkstra #leetcode #파이썬 #python #algorithm #787
- dfs #bfs #이진트리 #파이썬 #리트코드
- 해시테이블 #heapq #파이썬 #리트코드 #알고리즘
- 다익스트라 #알고리즘 #bfs #그리디 #다이나믹프로그래밍 #leetcode #python
- dfs #그래프 #graph #python #leetcode #course #schedule
- leetcode #subsets #dfs #itertools #python
- dfs #bfs #leetcode #python
- dfs #python #leetcode #combination
- context #android #getApplicationContext #activity #생명주기 #lifecycle
- Python #leetcode #dfs #그래프 #백트래킹
Archives
- Today
- Total
멋진 개발자가 되고 싶다
[LeetCode,Python] 771. 보석과 돌(Jewels and Stones) 본문
728x90
반응형
You're given strings jewels representing the types of stones that are jewels, and stones representing the stones you have. Each character in stones is a type of stone you have. You want to know how many of the stones you have are also jewels.
Letters are case sensitive, so "a" is considered a different type of stone from "A".
Input: jewels = "aA", stones = "aAAbbbb"
Output: 3
** 깔끔한 답안 **
1. 해시 테이블을 이용한 풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class Solution:
def numJewelsInStones(self, jewels: str, stones: str) -> int:
table = {}
count = 0
for stone in stones:
if stone not in table:
table[stone] = 1
else:
table[stone] += 1
for jewel in jewels:
if jewel in table:
count += table[jewel]
return count
|
cs |
해설:
꼭 해시 함수로 인덱스 처리를 해주지 않아도 해시 테이블이라고 하는 것 같다.
이 정도는 바로 떠올릴 수 있을 듯.
2. defaultdict를 이용한 비교 생략
1
2
3
4
5
6
7
8
9
10
11
12
|
class Solution:
def numJewelsInStones(self, jewels: str, stones: str) -> int:
table = collections.defaultdict(int)
count = 0
for stone in stones:
table[stone] += 1
for jewel in jewels:
count += table[jewel]
return count
|
cs |
해설:
table에 있는지 체크하는 과정을
defaultdict를 추가하여 없애주었다.
3. Counter로 계산 생략
1
2
3
4
5
6
7
8
9
|
class Solution:
def numJewelsInStones(self, jewels: str, stones: str) -> int:
table = collections.Counter(stones)
count = 0
for jewel in jewels:
count += table[jewel]
return count
|
cs |
해설:
Counter를 이용하여 개수를 세는 과정까지 없애버렸다!
4. 파이썬다운 방식
1
2
3
|
class Solution:
def numJewelsInStones(self, jewels: str, stones: str) -> int:
return sum(stone in jewels for stone in stones)
|
cs |
해설:
홀리 쓋...
[출처: 파이썬 알고리즘 인터뷰(박상길 지음/ 정진호 일러스트/ 책만 출판사)]
728x90
반응형
'Algorithm Study > leetcode' 카테고리의 다른 글
[LeetCode/Python] 347. 상위 K 빈도 요소(Top K Frequent Elements) (0) | 2021.07.18 |
---|---|
[LeetCode/Python] 3. 중복 문자 없는 가장 긴 문자열(Longest Substring Without Repeating Charactors) (0) | 2021.07.18 |
[LeetCode,Python] 706. 해시 맵 디자인(Design HashMap) (0) | 2021.07.17 |
[LeetCode,Python] 23. k개 정렬 리스트 병합(Merge k Sorted Lists) (0) | 2021.07.15 |
[LeetCode,Python] 641. 원형 데크 디자인(Design Circular Deque) (0) | 2021.07.15 |