본문 바로가기

Language/Python

(27)
python Trie 알고리즘 Trie 탐색알고리즘은 문자열을 효율적으로 탐색하는데에 쓰인다. 더하여, 알고리즘 코딩테스트에서도 시간복잡도를 줄이는데 이중 for문 등 대신에 많이 쓰인다. Trie의 시간복잡도는 O(m)이라고 한다 (m은 문자열의 길이) 기본적인 트리구조 탐색으로 아래 그림처럼 문자를 저장하며 마지막노드에 문자열을 저장하는 방식이다. Python으로 Trie를 구현하면 다음과 같다. class Node(): def __init__(self, key = None, data = None): self.key = key self.data = data self.child_node = {} class Trie(): def __init__(self): self.head = Node() def insert(self, string)..
python input num = lisT(map(int, input().split(" "))) 여러 코딩테스트 사이트를 진행 하다보면 input을 여러개 받고 시작하는 문제가 존재함.
python 최소공배수 from math import gcd def test(a,b): return a*b // gcd(a,b)
python list, dictionary comprehension 리스트 컴프리핸션 tmp = [x for x in range(10)] # # tmp = [0,1,2,3,4,5,6,7,8,9] # 딕셔너리 컴프리핸션 tmp = {x:x+1 for x in range(3)} # # tmp = {0:1, 1:2, 2:3} #
windows10에서 virtualenv 설치 및 작동방법 설치 방법 cmd에서 시작 설치>>> pip install virtualenv 셋팅 및 설정>>> virtualenv (가상환경으로 쓸 폴더명) 실행>>> call (2번에서만든 폴더명)/scripts/activate 종료>>> deactivate
python heapq 설명 heapq 모듈은 이진 트리(binary tree) 기반의 최소 힙(min heap) 자료구조 python에서 제공하는 heapq는 min-heap (최소힙)을 기본으로 제공한다. ex) [70,50,80,50] -> [50,50,80,70]이 된다. 알고리즘 문제를 풀다보면 단순 List의 append, pop을 사용하다가 시간초과(효율성검사)되는 경우가 발생.. 그럴때, heapq를 쓰면 시간복잡도가 나아지는지 효율성검사 통과하게됨. 사용법 선언 import heapq List -> heap 변경 import heapq a = [1,2,3] heapq.heapify(a) heap push, pop import heapq heapq.heappush(1,a) # push 1 , [1,2,3] -> ..
python collections import collections # 주로 쓰는 함수, 리스트 내 원소를 Key, 반복된 횟수를 Value로 Dict를 반환 a = [1,1,2,3,3,3] collections.Counter(a) # Counter의 첫 문자 c는 대문자여야함. >>> Counter{1:2, 2:1, 3:3} # 출력값에서 key만 가져오고싶을때, import collections a = [1,1,2,3,3,3] p = collections.Counter(a) # Counter의 첫 문자 c는 대문자여야함. print(list(p)) # 출력값에서 value만 가져오고싶을때, import collections a = [1,1,2,3,3,3] p = collections.Counter(a) # Counter의 첫 문자 c..
python dict value 순서로 정렬하기 dict에서 value 기준 정렬하는법 a = {2:'2', 1:'1'} sorted(a.items(), key = lambda x:x[1]) # 올림차순 sorted(a.items(), key = lambda x:x[1], reverse =True) # 내림차순 더하여, 정렬시 여러 조건으로 정렬을 하고싶을때가 있다. 그럴때는, sorted(a.items(), key = lambda x: (x[0], x[1])) 이런식으로 튜플로 묶어주면 된다.