본문 바로가기
728x90

TIL - 프로그래밍/개념, 설정44

[Python] ORM aggregate from django.db.models import Avg, Max, Sum, Count # 전체 평균 나이 User.objects.aggregate(Avg('age')) # 김씨의 평균 나이 User.objects.filter(last_name='김').aggregate(Avg('age')) # 강원도에 사는 사람의 평균 계좌 잔고 User.objects.filter(country='강원도').aggregate(Avg('balance')) # 계좌 잔액 중 가장 높은 값 User.objects.aggregate(Max('balance')) # 계좌 잔액 총액 User.objects.aggregate(Sum('balance')) Annotate '주석을 달다' 라는 사전적 의미 필드를 하나 만들고 거기에.. 2022. 4. 16.
[Python] 데이터베이스 데이터베이스(DB) 체계화된 데이터의 모임 여러 사람이 공유하고 사용할 목적으로 통합 관리되는 정보의 집합 논리적으로 연관된 (하나 이상의) 자료의 모음으로 그 내용을 고도로 구조화 함으로써 검색과 갱신의 효율화를 꾀한 것 즉, 몇 개의 자료 파일을 조직적으로 통합하여 자료 항목의 중복을 없애고 자료를 구조화하여 기억시켜 놓은 자료의 집합체 데이터베이스로 얻은 장점 데이터 중복 최소화 데이터 무결성(정확한 정보를 보장) 데이터 일관성 데이터 독립성(물리적/논리적) 데이터 표준화 데이터 보안 유지 관계형 데이터베이스 (RDB) Relational Database 키와 값들의 간단한 관계를 표 형태로 정리한 데이터베이스 관계형 모델에 기반 스키마 : 데이터베이스에서 자료의 구조, 표현방법, 관계등 전반적인 .. 2022. 4. 15.
[Python] Tree3 - heap heap 완전 이진 트리에 있는 노드 중에서 키 값이 가장 큰 노드나 키 값이 가장 작은 노드를 찾기 위해서 만든 자료구조 최대 힙(max heap) 키 값이 가장 큰 노드를 찾기 위한 완전 이진 트리 부모 노드의 키 값 > 자식 노드의 키 값 최소 힙(min heap) 키 값이 가장 작은 노드를 찾기 위한 완전 이진 트리 부모 노드의 키 값 < 자식 노드의 키 값 힙 연산 - 삽입 완전 이진 트리를 유지 하기 위해 마지막 노드 다음에 추가 최대 힙 or 최소 힙에 따라 위치 조정 # 최대 힙 삽입 def enq(n): # 마지막 정점 번호 global last # 완전이진트리 유지 last += 1 tree[last] = n # 위치 조정 # 새로 추가된 정점을 자식으로 c = last p = c//2.. 2022. 4. 5.
[Python] Tree2 배열을 이용한 이진 트리 표현 루트 번호를 1로 함 레벨 n에 있는 노드에 대하여 왼쪽부터 오른쪽으로 2^n부터 2^(n+1)-1까지 번호를 차례로 부여 노드 번호를 배열의 인덱스로 사용 노드 번호의 성질 노드 번호가 i인 노드의 부모 노드 번호 : i//2 노드 번호가 i인 노드의 왼쪽 자식 노드 번호 : i*2 노드 번호가 i인 노드의 오른쪽 자식 노드 번호 : i*2+1 레벨 n의 노드 번호 시작 번호 : 2^n 단점 편향 이진 트리의 경우 사용하지 않는 배열 원소에 대한 메모리 공간 낭비 발생 트리의 중간에 노드를 삽입하거나 기존의 노드를 삭제할 경우 배열의 크기 변경 어려워 비효율적 자식 번호를 인덱스로 부모 번호를 저장 # edge 수 E = int(input()) # 4 arr = list(.. 2022. 4. 4.
[Python] Tree1 트리의 개념 비선형 구조 원소들 간에 1:N 관계를 가지는 자료구조 원소들 간에 계층관계를 가지는 계층형 자료구조 상위 원소에서 하위 원소로 내려가면서 확장되는 트리(나무)모양의 구조 정의 노드(node) : 트리의 원소 루트 노드(root node) : 트리의 시작 노드 간선(edge) : 노드를 연결하는 선 형제 노드(Sibling node) : 같은 부모 노드의 자식 노드들 조상 노드 : 간선을 따라 루트 노드까지 이르는 경로에 있는 모든 노드들 서브 트리(subtree) : 부모 노드와 연결된 간선을 끊었을 때 생성되는 트리 자손 노드 : 서브 트리에 있는 하위 레벨의 노드들 차수(degree) 노드의 차수 : 노드에 연결된 자식 노드의 수 트리의 차수 : 트리에 있는 노드의 차수 중에서 가장 큰.. 2022. 4. 3.
[Python] 재귀로 순열, 조합 순열 재귀로 표현 def f(m,n,k): # 순열 p[m]을 채우는 함수, n개 중 k개 고르기 global cnt if m == k: cnt += 1 print(p) else: for i in range(n): # used에서 사용하지 않은 숫자 검색 if used[i] == 0: # 앞에서 사용하지 않은 숫자인 경우 used[i] = 1 # 사용함으로 표시 p[m] = a[i] # p[m] 결정 f(m+1,n,k) used[i] = 0 # a[i]를 다른 위치에서 사용할 수 있도록 함 return a = [1,2,3,4,5] p = [0]*3 used = [0]*len(a) cnt = 0 f(0,5,3) # 5P3 print(cnt) # 60 조합 재귀로 표현 - 1 def nCr(n,r,s): #.. 2022. 3. 28.
반응형