Python

    [Python] 중복순열, 중복조합(itertools.product, combinations_with_replacement)

    import itertools alphabet = ['A', 'B', 'C'] # 문자열이나 range로도 가능 print([*itertools.product(alphabet, alphabet)]) # 2개의 원소로 중복순열 print([*itertools.product(alphabet, repeat=3)]) # 3개의 원소로 중복순열 print() print([*itertools.combinations_with_replacement(alphabet, 2)]) # 2개의 원소로 중복조합 출력값 [('A', 'A'), ('A', 'B'), ('A', 'C'), ('B&#3..

    [Python] collections.Counter

    import collections li = [1, 2, 3, 4, 5, 6, 7, 8, 7, 9, 1, 3, 5, 7, 9, 1, 5, 9, 0, 1, 10, 100, 10, 1] cnt = collections.Counter(li) print(cnt[1]) # 1의 개수: 5 print(cnt[2]) # 2의 개수: 1 print(cnt[3]) # 3의 개수: 2 print(cnt[5]) # 5의 개수: 3 print(cnt[10]) # 10의 개수: 2 print(cnt[100]) # 100의 개수: 1 출력값 5 1 2 3 2 1

    [Python] 순열, 조합(itertools.permutations, combinations)

    import itertools alphabet = ['A', 'B', 'C'] # 문자열이나 range로도 가능 print([*itertools.permutations(alphabet)]) # 3개의 원소로 순열 print([*itertools.permutations(alphabet, 2)]) # 2개의 원소로 순열 print() print([*itertools.combinations(alphabet, 2)]) # 2개의 원소로 조합 출력값 [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')] [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'..

    [Python] 누적합 itertools.accumulate

    from itertools import accumulate li = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ac = list(accumulate(li)) print(li) print(ac) 출력값 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [1, 3, 6, 10, 15, 21, 28, 36, 45, 55]

    [Python] 힙 자료구조 Heapqueue

    가장 작은 값이 항상 앞에 오는 자료구조 - 최대값, 최솟값을 빠르게 찾아내기 위해 고안되었다 import heapq heap = [] heapq.heappush(heap, 5) # heap = [ 5 ] heapq.heappush(heap, 1) # heap = [ 1, 5 ] heapq.heappush(heap, 2) # heap = [ 1, 5, 2 ] heapq.heappop(heap) # heap = [ 2, 5 ] print(heap) 출력값 [2, 5] heap = [ 5, 1, 2 ] heapq.heapify(heap) # heap = [ 1, 5, 2 ] print(heap) 출력값 [1, 5, 2]