counter

    백준 10816 풀이 (숫자 카드 2, 이분 탐색,  해쉬 사용, Counter)

    백준 10816 풀이 (숫자 카드 2, 이분 탐색, 해쉬 사용, Counter)

    이번 문제는 Counter를 사용해서 해결했다. 기본적인 이분 탐색과 풀이에 차이가 전혀 없다. 단지 Counter를 이용해서 Dict형태로 만들어 주고 중복값을 제거하여 이분 탐색을 진행하게 만들었다. 1. Counter를 이용해서 중복을 제거한 Adict를 얻는다. 2. Adict에서 key값만 뽑아서 중복이 제거된 Alist를 얻는다. 3. Alist를 오름차순으로 정렬한다. 4. 이분탐색을 이용하여 해당되는 값을 구한다. 5. 해당 되는 값을 구할 수 있다면 Adict에서 몇개나 존재하는지 출력한다. 위의 순서로 코딩을 진행하면 쉽게 풀 수 있다. from collections import Counter n = int(input()) AC = Counter(list(map(int, input()...

    백준 9375 풀이 (패션왕 신혜빈, Counter)

    크게 어려운 점은 없었다. 다만 코드를 짤때 예외나 조건을 잘 봐줘야한다. 문제는 단순하게 경우의 수를 구해주면 된다. 옷을 돌려입는 경우의 수만 구하면 되는거 같지만 안입는 경우도 고려하여 계산 해야하기 때문에 각 옷마다 +1을 해주어 경우의 수로 곱해주면된다. 예를 들어 안경 2개, 모자 2개라면 3 x 3 = 9이므로 여기에 둘다 착용하지 않는 경우 -1을 해주면 8이 된다. (단, 이때 옷을 입지 않는 testcase가 0인 경우도 고려해주어야 한다.) 이러한 방식을 코딩해주면 아래와 같다. n = int(input()) for _ in range(n): t = int(input()) if t == 0: print(0) continue dic = {} for _ in range(t): name,k..

    백준 2108 풀이 (python, collections, Counter)

    백준 2108 풀이 (python, collections, Counter)

    이번꺼 어떻게 해야하는지 알면서도 헤맸던 문제였던거 같다. 계속 시간초과가 나와서 좀더 빠르게 할수 있는 방법이 있는지 찾아보기도 하다가. collection을 알게 되었다. 예전에 악성코드 분석할때 전처리 과정에서 사용해보라는 추천을 받았던 기억이 난다. 물론 난 이전 방법이 다루기가 편해서 굳이 사용해보지 않았지만 이번에 사용해 볼 수 있었다. collections모듈을 데이터 처리를 할때 자주 사용된다고 한다. 합을 구하거나 중복수를 찾거나 하는경우 Counter객체를 사용한다고 한다. 따라서 이 객체를 사용해보았다. Counter는 딕셔너리 형태처럼 사용된다. 따라서 딕셔너리에서 사용가능한 함수들을 사용가능하다. Counter에서 중요한 함수는 most_common이다. 이 함수를 사용하면 가장 ..