분류 전체보기(45)
-
파이썬 문자열 다루기
정규표현식 https://nachwon.github.io/regular-expressions/ [Python 문법] 정규표현식 (Regular Expressions) 정규표현식에 대해 알아보고 Python으로 정규표현식을 사용하는 방법에 대해 알아본다. nachwon.github.io pattern object 를 compile후 findall(list로 return) 또는 search 함수로 찾는다 import re string = 'abczzabceeabcddabc' pattern_object1 = re.compile('abc') a = pattern_object1.search(string).group() b = pattern_object1.findall(string) p = re.compile('[..
2022.08.29 -
파이썬 함수 팁
collections - Counter, deque, defaultdict, ordereddict itertools - combinations, combinations_with_replacement, permutations, product reduce, filter, operator from functools import reduce import operator a = list(range(10)) print(a) r = reduce(lambda x, y: x + y, a) print(r) b = reduce(operator.add, a) print(b) c = list(filter(lambda x: x > 5, a)) print(c) zip으로 행 열 바꾸기 list( zip(*A)) 객체복사 impor..
2022.08.29 -
Union
백준 1717 Union 기본 Union, Find 함수 구현 https://www.acmicpc.net/problem/1717 import sys sys.setrecursionlimit(10 ** 5) n, m = map(int, input().split()) parent = [i for i in range(n + 1)] def find_parents(x, parent): if x != parent[x]: parent[x] = find_parents(parent[x], parent) return parent[x] def union(parent, a, b): a = find_parents(a, parent) b = find_parents(b, parent) if a < b: parent[b] = a el..
2022.08.12 -
그래프 최단거리
백준 1753 Dijkstra 기본 O(N^2), Heap 사용시 O(E*logV) distance 저장용 1차원 Array 사용 import heapq import sys V, E = map(int, input().split()) K = int(input()) graph = [[] for _ in range(V +1)] for _ in range(E): u, v, w = map(int, sys.stdin.readline().split()) graph[u].append((w,v)) dis = [1e9] * (V+1) def Dijkstra(start): dis[start] = 0 q = [] heapq.heappush(q, (0,start)) while q: dist, now = heapq.heappop..
2022.08.11 -
Numba
numba 참고 5분 가이드 https://gurujung.github.io/dev/numba_user_5minguide/ [Numba 사용자 매뉴얼] 1.1 5분 가이드 Numba는 NumPy 배열/함수 및 루프를 사용하는 파이썬 코드에 가장 잘 작동하는 즉석 컴파일러이다.당신의 함수에 일련의 데코레이터를 적용함으로써 Numba는 당신의 코드를 컴파일 할 수 있다.Numba로 gurujung.github.io 전체 가이드 https://gurujung.github.io/dev/numba_user_index/ [Numba 사용자 매뉴얼] 목차 목차 5분 가이드 개요 설치 @jit과 함께 파이썬 코드 컴파일하기 @generated_jit으로 유연하게 전문화하기 Numpy 유니버설 함수 만들기 @jitcla..
2022.08.11 -
동적 프로그래밍
LIS (최장 증가 수열) https://4legs-study.tistory.com/106 최장 증가 수열 (LIS, Longest Increasing Subsequence) 최장 증가 수열 (LIS, Longest Increasing Subsequence) 최장 증가 수열, 정확히 최장 증가 부분 수열은 어떠한 수열에서 오름차순으로 증가하는 가장 긴 부분수열을 의미한다. 이 때, 부분 수열의 각 4legs-study.tistory.com O(N^2) - DP 사용 O(N*logN) - DP + 이진탐색 사용 import sys n = int(input()) S = list(map(int, sys.stdin.readline().split())) def N_square(): dp = [1] * n for ..
2022.08.10