🍋 ⚾️ 💻 🎬 🎮

전체 글 114

99클럽 코테 스터디 _ 22일차 TIL (동적 계획법, 이분 탐색)

[백준] 11053. 가장 긴 증가하는 부분 수열 / 실버2Dynamic Programming시간복잡도 : O(N^2)  코드 변수 정의l : 수열의 길이A : 정수로 이루어진 수열def lis(l, A): # dp[i]: A[i]를 마지막 원소로 가지는 최장 증가 부분 수열의 길이 dp = [1] * l # 모든 원소는 최소 1개의 길이를 가짐 # 모든 i에 대해 이전 원소들과 비교 for i in range(1, l): for j in range(i): # A[j]가 A[i]보다 작다면, A[i]를 A[j] 뒤에 붙일 수 있음 if A[i] > A[j]: dp[i] = max(dp[i], dp[j] ..

[Algorithm] Dynamic Programming (동적 계획법)

Dynamic Programming (동적 계획법)Dynamic Programming(DP, 동적 계획법)은 복잡한 문제를 작은 하위 문제로 나누어 해결한 후, 결과를 저장하여 중복 계산을 피하는 최적화 기법→   한 번 계산한 값을 저장해두고, 필요할 때 다시 사용함으로써 연산량을 줄이는 기법  조건DP를 사용하기 위한 조건 1. 최적 부분 구조 (Optimal Substructure)큰 문제를 작은 문제로 나누었을 때, 작은 문제의 최적해를 이용해 큰 문제의 최적해를 구할 수 있어야 한다. 예시)피보나치 수열f(N) = f(N−1) + f(N−2)    →    f(N-1)과 f(N-2)을 구하면 f(N)도 구할 수 있다.2. 중복되는 부분 문제 (Overlapping Subproblems)동일한 작..

Tech/Algorithm 2025.02.17

99클럽 코테 스터디 _ 21일차 TIL (동적 계획법)

[백준] 1003. 피보나치 함수 / 실버3Dynamic Programming시간복잡도 : O(N)  코드 변수 정의dp : 한 번 계산한 값을 저장하여 재사용하기 위한 dp 테이블 생성def main(): T = int(input()) dp = [(1, 0), (0, 1)] + [(0, 0)] * 39 # N은 최대 40을 갖음 # dp 초기화 # fibo(n-1) + fibo(n-2) 로 0, 1 반환 count 구하는 코드로 구현 for i in range(2, 41): dp[i] = (dp[i-1][0] + dp[i-2][0], dp[i-1][1] + dp[i-2][1]) for _ in range(T): N = int(input..

99클럽 코테 스터디 _ 20일차 TIL (우선순위 큐)

[백준] 19598. 최소 회의실 개수 / 골드5코드 변수 정의meetings : 각 회의의 시작 시간과 종료 시간을 담은 리스트pq : 우선순위 큐start, end : 회의 시작 시간, 회의 종료 시간Priority Queue시간복잡도 : O(N logN)import heapqdef meeting_room(): N = int(input()) meetings = [list(map(int, input().split())) for _ in range(N)] meetings.sort() # 회의 시작 시간을 기준으로 정렬 pq = [] # 우선순위 큐 생성 heapq.heappush(pq, meetings[0][1]) # 1번째 회의 종료 시간을 힙에 push f..

99클럽 코테 스터디 _ 19일차 TIL (그리디)

[백준] 1946. 신입 사원 / 실버1코드 변수 정의applicants : 입력받은 지원자 정보를 저장하는 리스트max_new : 선발할 수 있는 신입사원의 최대 인원수b : 지원자의 면접 성적min_b : 현재 지원자까지의 최소 면접 성적   *초기 값은 무한대 값으로 초기화한다.Greedy시간복잡도 : O(N logN)def recruit(): N = int(input()) applicants = [list(map(int, input().split())) for _ in range(N)] # 지원자 정보 저장 리스트 applicants.sort() max_new = 0 # 선발 가능 최대 인원수 min_b = float('inf') # 최솟값을 무한대 값으로 초기화 ..

[Django] 05. Form으로 Template에서 Model 수정하기

1️⃣  Form 만들기만들어뒀던 앱(homepage)에서 새로운 파일을 생성한다.    📂  homepage  >  forms.pyfrom django import formsfrom .models import Coffee # Model 호출# 어떤 form을 만들지 작성해줘야 한다.class CoffeeForm(forms.ModelForm): # ModelForm을 상속받는 Coffee Form 생성 class Meta: # form을 만들기 위해서 어떤 모델을 써야하는지 class 안에 있는 class에서 지정이 된다. model = Coffee fields = {"name", "price", "is_ice"} # 어떤 field를 form에서 받을 것인지를 적어주는 곳이다. ..

Tech/Django 2025.02.12

[Django] 04. Template에서 Model 확인하기

📌  간단한 커피 메뉴 생성하기    📂  views.pydef coffee_view(request): return render(request, '', {})   { }에 model에서 가져온 어떤 객체 즉 어떤 행들을 다 넣어주도록 할 것이다.from .models import Coffeedef coffee_view(request): coffee_all = Coffee.objects.all() # .get(), .filter() ... return render(request, 'coffee.html', {"coffee_list" : coffee_all})     📂  template  >  coffee.html My Coffee List {{ cof..

Tech/Django 2025.02.12

[Django] 03. Model

📌  Model로 DB 구성하기 데이터베이스 (구조화)Relational DB (테이블 형식으로)   →    row(record) , column(attribute)pandas df와 완전히 유사max( ), groupby( ) apply 가능SQL  ORM Object  →   객체django에 내장되어 있다.  📂  models.py   model을 만들 때 class 단위로 만들 수 있다.class (models.Model): field1 = models.FieldType(option 추가 가능)...# Field 1 _field의 type을 정할 수 있다. field2 = models.FieldType()...# Field 2 """ 문자열 : CharField 숫자 : IntegerFiel..

Tech/Django 2025.02.12

[Algorithm] Priority Queue (우선순위 큐)

우선순위 큐(Priority Queue)우선순위 큐는 가장 중요한(우선순위가 높은) 요소가 먼저 처리되는 자료구조→   일반적인 큐(Queue)는 선입선출(FIFO, First In First Out)→   우선순위 큐는 우선순위가 높은 요소가 먼저 나오는 구조  특징자동 정렬요소를 삽입할 때마다 내부적으로 정렬하고 꺼낼 때 항상 최우선 요소가 반환된다.힙(Heap) 자료구조 활용일반적으로 이진 힙(Binary Heap)을 사용하여 O(logN)의 시간복잡도로 삽입/삭제 가능최소 힙(Min Heap) / 최대 힙(Max Heap)최소 힙(Min Heap, default)  :  값이 작은 요소가 먼저 반환된다.최대 힙(Max Heap)  :  값이 큰 요소가 먼저 반환된다.  Python heapq 모듈..

Tech/Algorithm 2025.02.12
728x90
반응형