힙 자료구조 heapq 모듈은 이진트리 기반의 최소힙(min heap) 자료구조를 제공한다. min heap을 이용하면 원소들이 항상 정렬된 상태로 추가되고 삭제된다. min heap에서 가장 작은 값은 언제나 인덱스 0이고, 내부적으로 min heap 내의 모든 원소는 항상 자식 원소(k)는 항상 자식 원소들(2k+1, 2k+2)보다 크기가 작거나 같도록 원소가 추가되고 삭제된다. 모듈 임포트 import heapq 내장 모듈이라, 파이썬만 설치되어 있다면 간단하게 임포트 후 힙 관련 함수 사용 가능 힙에 원소 추가 heap = [] heapq.heappush(heap,4) # heapq.heappush(추가할 리스트 대상, 추가할 원소) 힙에서 원소 삭제 heapq.heappop(head) # 가장 ..
개발공부/Python 문법
rjust 메소드는 오른쪽으로 정렬하는 것을 도와준다. 사용법 : str.rjust('횟수','빈 문자열에 들어갈 문자') a = '4424' a = a.rjust(5,'0') # '04424' 마찬가지로 ljust메소드는 왼쪽으로 정렬하는 것을 도와준다. 사용법 : str.ljust('횟수', '빈 문자열에 들어갈 문자')
1. isdigit ? 문자열이 숫자로만 이루어져있는지 확인하는 함수. 문자열 중 숫자가 아닌 문자가 있으면 False를 반환하고 전부 숫자로 이루어져있다면 True를 반환함. 마이너스 부호나 소수점 등을 판단하지 못함. 지수를 뜻하는 n 제곱도 True가 반환될 수 있음. 2. 사용법 ex) str.isdigit(arg) arg = 판단하고자 하는 문자열 ex2) arg.isdigit() arg = 판단하고자 하는 문자열
n진수 -> 10진수 int(string, base) ex) int('thr', 3) #3진법의 문자열 'thr'을 10진수로 변환 - int(3.6) # -> 3. 그냥 뒤에 소수점을 삭제함 10진수 -> 2, 8, 16진수 bin(), oct(), hex() 함수 str = bin(10) #0b0101 str[2:] 라고 적으면 진법이 사라지고 바뀐 수만 출력됨. 10진수 -> n진수 def change(n,q): chg = "" while n>0: n, mod = divmod(n,q) chg += str(mod) return chg_[::-1] n진수->n진수 이건 좀 귀찮더라도 n진수를 10진수로 변환한 후 또 다른 n진수로 변환하면 된다.
set()함수는 리스트 내 중복되지 않는 원소를 얻고자 할 때 사용할 수 있는 Python 내장 함수다. sum,min,max와 같이 바로 사용이 가능하다. set 안의 값을 제거하려면 remove, discard 를 사용할 수 있겠다. remove는 집합 내에 원소가 없는 경우 에러가 발생하고, discard는 원소가 없어도 에러가 나지 않는다. 보통 set은 list 가 아닌 형태로 반환되기 때문에, list()로 형변환 시켜주는 것이 좋다. - set 연산자를 활용해서 합집합, 교집합, 차집합, 대칭차집합을 만들 수 있다. 합집합 : | or union 교집합 : & or intersection 차집합 : - or difference 대칭차집합(합집합 - 교집합) ^ or symmetric_diff..
split(arg) : arg를 기준으로 문자를 나누고 리스트로 반환하는 메소드 ex ) str.split() # str문자를 공백을 기준으로 나누어라. join(arg) : str문자(리스트,튜플) - 리스트에 있는 값들을 합침. 튜플, 딕셔너리도 가능. ex) "".join(str)
파이썬 모듈에는 정규 표현식이라는 regular expression모듈이 있다. 우선 메타 문자에 대해 살펴보자. 메타 문자란 원래 그 문자가 가진 뜻이 아닌 특별한 용도로 사용하는 문자라고 한다. . ^ & * + ? { } [ ] / | ( ) 문자클래스 [ ] - [ ] 사이의 문자들과의 매치 라는 의미를 갖는다. 예를 들자면 [qwer] 는 문자열 "q","w","e","r" 중 한 개의 문자와 매치를 의미한다고 한다. - " query " 는 "q"와 매치 - "word" 는 정규식과 일치하는 문자인 "w"가 있으므로 매치 - "man"은 정규식과 일치하는 문자가 없으므로 매치되지 않는다. [ ] 안의 두 문자 사이에 하이픈(-)를 사용하면 두 문자 사이의 범위를 의미하는데, [a-z]는 a부터..