Programming Languages/Python

Python 의 divmod() 함수는 몫과 나머지를 구하는 함수이다. def modify(n, k): # k진수로 변경하기 result = '' while n > 0: n, mod = divmod(n, k) # 몫과 나머지를 구함 result += str(mod) return result[::-1]
re.sub re 모듈에 있는 sub() 함수는 문자열 조작에 사용할 수 있다. re.sub(정규표현식, 치환문자, 대상 문자열) text = "hello HELLO, my name is minjee. I woke up early today." 이런 문자열이 있고 여기서 ',' 와 '.' 를 제거해야하는 경우 text_mod = re.sub(r'[^\w]', ' ', text) hello HELLO my name is minjee I woke up early today 이렇게 바꿀 수 있다. 정규표현식에서 ^ 는 not 을 의미하고 \w는 문자열를 의미한다. 즉 위의 코드는 문자에 해당하지 않는 것들을 공백열로 바꿔주고 있다. 그렇다면 파이썬 정규표현식은 무엇일까 ? 파이썬에서 문자열의 일정한 패턴을 표..
defaultdict Python의 collections 모듈에 defaultdict이 있다. 코딩테스트 풀때, 딕셔너리가 필요한 문제 풀 때 굉장히 편리하다 일반 딕셔너리는 key 값을 미리 넣어주지 않았다면 value에 대한 연산을 할 때 KeyError 에러가 난다. words = ["apple", "apple", "iphone", "mac", "mac", "mac"] dict_temp = {} dict_temp[words[0]] += 1 그렇다보니 defaultdict을 모르기 이전에는 이런식으로 코드를 짠 것 같다 for word in words: if word in dict_temp.keys(): dict_temp[word] += 1 else: dict_temp[word] = 1 이런 번거로움..
import heapq INF = int(1e9) n, m = map(int, input().split()) graph = [[] for _ in range(n+1)] for i in range(m): a, b = map(int, input().split()) graph[a].append((b, 1)) graph[b].append((a, 1)) distance = [INF]*(n+1) start = 1 def dijkstra(start): # 다익스트라 q = [] heapq.heappush(q, (0, start)) distance[start] = 0 while q: dist, now = heapq.heappop(q) if dist > distance[now]: continue for i in grap..
Python에서 이진탐색을 라이브러리로 제공한다 ! bisect 라이브러리는 정렬된 배열 내에서 특정 원소를 찾을 때 O(logN)으로 동작한다. bisect_left() 함수 : 정렬된 순서를 유지하면서, 리스트 a에 데이터 x를 삽입할 가장 왼쪽 인덱스를 찾는 메소드 bisect_right() 함수 : 정렬된 순서를 유지하면서, 리스트 a에 데이터 x를 삽입할 가장 오른쪽 인덱스를 찾는 메소드 중요한건 정렬된 순서를 유지! 하면서 인덱스를 찾는것이다 예를 들어 리스트 [1, 2, 4, 4, 8] 이 있다면 bisect_left(a, 4)는 리스트에서 4가 처음으로 등장하는 위치인 2를 반환한다. 그리고 bisect_right(a, 4) 는 리스트를 4가 마지막으로 등장하는 위치 인덱스 +1 의 위치인..
코딩 문제 풀 때 굉장히 알아두면 유용한! 문자열을 다룰 때 쓰이는 join 함수 1. 형태 string.join(iterable) 여기서 string 에 들어가는 문자열은 구분자이다. 물론 "".join(iterable) 이렇게 빈 문자열을 붙일 수도 있다. 2. 예시 i) 문자열 리스트를 하나로 합치기 myNumber = ['1','2','3','4','5'] print("".join(myNumber)) ii) 공백 문자를 사이에 두고 문자열 리스트를 하나로 합치기 myNumber = ['1','2','3','4','5'] print("_".join(myNumber)) myStr = ["Hello", "My", "Name", "is", "Minjee"] print("!!!!!!".join(myStr)..
enumerate(iterable한 객체, start=0) enumerate는 파이썬 내장함수로, 반복문에서 사용되어 인덱스와 iterable한 객체의 데이터가 묶인 튜플을 반환한다. 여기서 iterable의 의미: member를 하나씩 차례로 반환 가능한 object를 말한다. iterable한 데이터 타입의 예로는, list, str, tuple이 있다. enumerate 의 파라미터는 iterable한 원소와 index이다. index는 생략가능하며, 지정해주지 않을 경우에 0부터 시작한다. 다음과 같이 for문의 인자를 하나만 설정해주면, 결과값으로 튜플이 반환된다. data = ['A', 'B', 'C'] # iterable한 list for i in enumerate(data): print(i..
1. Stack 스택 자료구조 선입후출 (First In Last Out) 구조 stack = [] stack.append(1) # push 를 append()로 구현한다. stack.append(2) stack.append(3) stack.pop() stack.append(4) print(stack) # 스택의 가장 밑에 있는 원소부터 출력 print(stack[::-1]) # 스택 가장 위에 있는 원소부터 출력 [1, 2, 4] [4, 2, 1] 파이썬에서 stack 자료구조를 구현하기 위해서는 이렇게 다른 라이브러리가 필요없이, list 구조에서 append()와 pop()으로 간단히 구현할 수 있다. 2. Queue 큐 자료구조 선입선출 (First In First Out) 구조 , 나중에 온 사..
minjiwoo
'Programming Languages/Python' 카테고리의 글 목록 (2 Page)