오늘은 counter 함수를 설명하겠다. 관련된 문제로는 백준의 #11652 카드 문제가 있다.
우선 나는 맨처음에 그냥 딕셔너리를 내가 만들어서 숫자의 개수를 세줬는데 이 기능을 그대로 해주는 함수가 있었다. collections 모듈의 counter 함수이다. 당연히 코드 맨윗줄에 모듈을 먼저 불러와야 하므로 import를 을 해줘야 한다
from collections import counter
위에서도 설명했지만 그냥 아래의 기능을 한 줄로 가능하게 하는 것이다.
def counts(word):
board = {}
for letter in word:
if letter not in board:
board[letter] = 1
else:
board[letter] += 1
return board
print(counts("Hello World"))
from collections import Counter
Counter('hello world')
또한 카드 문제에서 요구하는 데이터의 개수가 많은 걸로 정렬하는 메서드도 collections 모듈안에 있는데most_common()이라는 메서드다. 또한 ()안에 인자를 넣어주면 그 갯수만큼 가장 많은걸 반환한다.
from collections import Counter
Counter('hello world').most_common()
이처럼 카드문제를 그냥 풀어서 쓸 수도 있지만 이 모듈을 이용하면 간단하게 풀 수 있다.
728x90
반응형
'코딩테스트 > 파이썬 알고리즘' 카테고리의 다른 글
Study-[Python_모듈/함수/패키지/메소드] (0) | 2021.12.07 |
---|---|
Algorithms-[Euclidean algorithm & The Sieve of Eratosthenes ] (0) | 2021.12.01 |
Function-[sys.stdin.readline()] (0) | 2021.11.27 |
Algorithms-[DFS] (0) | 2021.11.26 |
Algorithms-[Greedy] (백준 #11047 [동전0]) (0) | 2021.11.21 |