코딩테스트 준비 - 3
2022. 5. 20. 22:56ㆍ프로그래밍 언어/코딩테스트준비
파이썬
추가문법 ( 딕셔너리 위주 )
collections 함수
- collections 함수의 Counter 메소드
import collections
participant = ["leo", "kiki", "eden"]
completion = ["eden", "kiki"]
adict = collections.Counter(participant)
# 결과 : Counter({'leo': 1, 'kiki': 1, 'eden': 1})
bdict = collections.Counter(completion)
# 결과 : Counter({'eden': 1, 'kiki': 1})
- Counter 메소드에서 중요한 점은 연산이 가능하다는 것!
adict - bdict
# 결과 : Counter({'leo': 1})
- Counter 연산 가능 다른 예제
a = Counter("aabasdxvdffass")
b = Counter("dasvdsfxddsfsa")
print(a) # Counter({'a': 4, 's': 3, 'd': 2, 'f': 2, 'b': 1, 'x': 1, 'v': 1})
print(b) # Counter({'d': 4, 's': 4, 'a': 2, 'f': 2, 'v': 1, 'x': 1})
print(a-b) # Counter({'a': 2, 'b': 1})
## 교집합
print(a&b) # Counter({'s': 3, 'a': 2, 'd': 2, 'f': 2, 'x': 1, 'v': 1})
## 합집합
print(a|b) # Counter({'a': 4, 's': 4, 'd': 4, 'f': 2, 'b': 1, 'x': 1, 'v': 1})
## 반환 원하는 수
print(a.most_common(2)) # [('a', 4), ('s', 3)]
## value 의 숫자만큼 반환
print(list(a.elements())) # ['a', 'a', 'a', 'a', 'b', 's', 's', 's', 'd', 'd', 'x', 'v', 'f', 'f']
딕셔너리의 .get
- [딕셔너리].get("찾을 키값", 없을때 리턴값)
# 코딩테스트 베스트앨범 문제
genres = ["classic", "pop", "classic", "classic", "pop"]
plays = [500, 600, 150, 800, 2500]
dic = {}
for i in range(len(genres)):
dic[genres[i]]=dic.get(genres[i],0)+plays[i]
print(dic) # {'classic': 1450, 'pop': 3100}
'프로그래밍 언어 > 코딩테스트준비' 카테고리의 다른 글
코딩 테스트 유형보기 3 - 브루트 포스 (0) | 2022.06.16 |
---|---|
코딩 테스트 유형보기 2 - DFS / BFS (0) | 2022.06.15 |
코딩 테스트 유형보기 1 - 자료구조 (0) | 2022.06.15 |
코딩테스트 준비 - 2 (0) | 2022.05.15 |
코딩 테스트 준비 (0) | 2022.05.07 |