반응형

전체 글 136

빅오(big-O) , 시간복잡도

빅 오 란 입력값 N이 커질때, 함수의 실행 시간의 추이를 말한다. 예를들어 숫자 1부터 N까지 출력하는 알고리즘을 작성했을 때 N 값이 100일때보다 1000000000000일때 실행시간이 커질 것이다. 이처럼 입력값이 커졌을 때의 알고리즘 효율성이 중요한데, 이를 미리 판단할 수 있는 수학식이다. 빅 오 표기법의 종류 O(1): 입력값이 커져도 실행 시간이 일정함으로 가장 좋은 알고리즘 (거의 발견할 수 없음) O(log n): 매우 큰 입력값에도 큰 영향을 받지 않음 (대표 알고리즘: 이진 검색) O(n): 입력값에 수행 시간이 비례함 (대표 알고리즘: 정렬되지 않은 리스트에서 최대값, 최솟값) O(n log n): 병합 정렬을 비롯한 대부분의 효율 좋은 정렬 알고리즘이 이에 해당함. O(n제곱):..

(장고) ORM tutorial #4. ManyToManyField()

https://www.pythontutorial.net/django-tutorial/django-many-to-many/ Django Many-to-Many Relationships By Practical Examples In this tutorial, you'll learn how to use ManyToManyField to model a Django Many-to-Many relationship. www.pythontutorial.net 한 명의 직원은 다양한 보상체계를 얻을 수 있고 , 보상체계에도 여러 직원이 포함될 수 있는 N:N 관계이다. 이때 각각의 테이블은 직접적으로 연결되지 않고, 중간에 연결해주는 테이블(hr_employee_compensations) 을 거친다. 1. Compensa..

(장고) ORM tutorial #3. OneToMany, ForeignKey()

https://www.pythontutorial.net/django-tutorial/django-one-to-many/ Django One-To-Many Relationship In this tutorial, you'll learn about one-to-many relationships in Django and how to use the ForeignKey to model them. www.pythontutorial.net 1:N 관계는 ForeignKey() 함수로 정의해준다. 부서 모델을 추가할 건데, 한 부서당 여러 직원을 가질 수 있으므로 부서:직원 = 1:N 관계를 가진다. 이 때, N인 테이블에 ForeignKey를 지정해주면 된다. (상대 테이블에는 정의 X) 1. Department 모델..

(장고) ORM tutorial #2. OneToOneField()

https://www.pythontutorial.net/django-tutorial/django-one-to-one/ Django One-To-One Relationship By Practical Examples In this tutorial, you'll learn about Django one-to-one relationship and how it works under the hood. www.pythontutorial.net 1:1 매칭되는 테이블 연결 만들어보기 1. Contact 모델 생성 후 Employee 모델에 추가 Employee 한명당 하나씩 연결될 Contact 모델을 만들어서 추가한다. OneToOneField(Model_Class_name, 조건 ) on_delete -> Empl..

(장고) ORM tutorial #1. all(), get() , filter(), save(), delete()

https://www.pythontutorial.net/django-tutorial/django-orm/ Django ORM In this tutorial, you'll learn about Django ORM and how to use Django ORM API to interact with relational databases. www.pythontutorial.net 장고의 ORM을 잘 이해하기 위해 튜토리얼 진행 1. postgreSql 사용을 위한 패키지 설치 및 설정 pip install psycopg2 settings.py DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'hr', 'USER': 'po..

프로그래머스 lv1. 없는 숫자 더하기 (set 사용)

https://school.programmers.co.kr/learn/courses/30/lessons/86051 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 요약 0 ~ 9 사이의 정수가 들어있는 numbers 리스트에서 0 ~ 9 중에 없는 숫자를 더해서 출력하기 문제풀이 아이디어 numbers 리스트는 중복된 값이 없다고 하니까, 같은 값이 2번 있을 수 없다는 점을 파악 0 ~ 9 까지 들어있는 set를 만들고, 이 set가 돌면서 numbers 리스트에 있는 값을 지워버리고 set에 남아있는 값을 합치자 set 사용한 이유 중복 없는 값으..

장고 (django) - LoginView, LogoutView, LoginRequireMixin 설정하기

까다로운 login, logout을 장고가 제공해주는 class 를 사용해서 아주아주 간단하게 구현할 수 있다. 1. LoginView task_list.html {% if request.user.is_authenticated %} {{request.user}} Logout {% else %} Login {%endif%} 왼쪽 화면 상단에 있는 Login 링크를 구현한 코드이다. 유저가 로그인 된 상태이면 logout , 로그아웃된 상태이면 login 코드를 노출한다. views.py 장고에서 제공하는 LoginView를 받아서 로그인 클래스 구현 from django.contrib.auth.views import LoginView class CustomLoginView(LoginView): templa..

프로그래머스 lv1. 음양더하기 (zip 사용해서 간단하게)

https://school.programmers.co.kr/learn/courses/30/lessons/76501 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr signs값이 false인 경우 - true 인 경우 +로 absolutes의 값을 다 더해서 result로 넘겨주는 문제! 1차 문제풀이 def solution(absolutes, signs): answer = [] for i,v in enumerate(signs): # True 일때 absolutes 의 해당 인덱스 값을 그대로 answer에 붙여줌 if v: answer.append(abso..

장고 generic editing views , createView

https://docs.djangoproject.com/en/4.2/ref/class-based-views/generic-editing/ Django The web framework for perfectionists with deadlines. docs.djangoproject.com 장고 공식 페이지 참고 CreateView 장고 제네릭의 edit 뷰 중 하나로 데이터를 입력하는 폼을 아주 간단하게 만들 수 있다. to do list 를 추가하는 폼을 예시로 만들어보자 models.py from django.db import models from django.contrib.auth.models import User # Create your models here. class Task(models.Mode..

반응형