본문 바로가기

항해99 chap02

보석과 돌 - 해시

보석과 돌

J는 보석이며 S는 갖고 있는 돌이다. S에는 보석이 몇 개나 있을까? 대소문자는 구분한다.

입력 : J="aA" S="aAAbbbb
출력 : 3


from collections import Counter

J='aA'
s="aAAbbbb"

s=(Counter(s)) #counter를 이용하여 s={'b': 4, 'A': 2, 'a': 1}로 저장

answer=0
for i in J: # stone안에 보석이 있으면 answer+=보석수
    answer+=s[i]
print(answer)

문제풀이

간단한 문제였다.
s를 Counter을 이용하여 빈도수가 나오는 딕셔너리로 저장한후 보석인것을 찾아 answer에 더해주면서 해결.


알게된 것

파이썬에서 제공하는 collections 모듈의 Counter클래스를 사용하면 데이터의 개수를 셀때 유용하다.

  • Counter(list): 문자열이나 list의 요소를 카운팅하여 많은 순으로 딕셔너리 형태로 리턴한다.
  • most_common() : 개수가 많은 순으로 정렬된 튜플 배열 리스트를 리턴해준다.
    • most_common(k)를 사용하면 k개 만큼 보여준다.

'항해99 chap02' 카테고리의 다른 글

상위 k 빈도수 - 해시  (0) 2022.01.21
중복 문자 없는 가장 긴 부분 문자열 - 해시  (0) 2022.01.21
스택을 이용한 큐 구현 - 큐  (0) 2022.01.21
프린터 큐 - 큐  (0) 2022.01.21
카드2 - 큐  (0) 2022.01.21