Python (9) 썸네일형 리스트형 재귀 & 추상클래스 1. 재귀의 이해 재귀함수: 스스로를 호출하는 함수이다. 주요한 이유: 재귀함수를 모르면 못푸는 문제 유형들이 매우 중요하기 때문이다. 예) DFS, BFS, 트리순회(traversal) def rec(n): if n ==0: return 0 else: return n + rec(n-1) print(rec(4)) # 4+3+2+1+0 = 10 def rec2(n): if n= n: return n-1 return fib(n-1)+fib(n-2) 2. 클래스 심화 0. 상속 되짚기 Animal -> cat, dog 1. 메서드 오버라이딩 서브 클래스에서 상위클래스의 메서드를 재정의 하는 것을 의미한다. 이름은 같지만 다른 기능을 수행하고 싶을 때, 기능추가/수정 하고싶을 때 사용한다. django에서의 오.. 23.05.01 TIL 오늘은... 1. 개인과제 해설 강의 2. 페어프로그래밍(링크) 를 하고 밀린 강의 내용등을 정리하였다. 1. 개인과제 해설 강의 정리 1-1. 글 상세보기/리스트보기 같이 처리하기 def get(self, request, todo_id=None) default parameter를 이용하면, 해당 인자를 넘겨주지 않는 경우에도 에러가 발생하지 않고 처리가 가능하다. 이후 if문을 이용해 None이면 전체 글의 리스트를 조회하고 todo_id가 자연수이면 해당 글을 상세보기하는 식으로 구현할 수 있다. 1-2. View 작성 팁: 주석과 return response로 시작하기 class UserView(APIView): def post(self, request): ''' 회원 가입(email, passwo.. 23.04.26 TIL - DRF 개인과제: model, view, serializer,url 오늘은... 페어프로그래밍 후 선발대 강의 정리를 하고 개인과제를 진행하였다. 개인과제에서 구현해야하는 사항은 DRF todo list CRUD를 구현하는 것, 사용자 회원가입/인증/로그아웃/탈퇴를 구현하는 것이다. 사용자의 인증은 조금 나중에 토큰을 이용해 구현해보기로 하고, 먼저 todo list 부터 구현해 보기로 했다. 1. todolists/models.py import time class TodoList(models.Model): class Meta: db_table = "todolist_table" title = models.CharField(max_length=50) is_complete = models.BooleanField(default=False) created_at = models... 23.04.25 TIL - defaultdict, lambda, callable 요약: defaultdict, callable, __call__() 페어프로그래밍: 주차요금계산을 풀면서 다른사람의 정답코드를 보고 궁금했던 것들을 찾아 정리했다. 1. 주차요금계산 문제상황: 시간순으로 입/출차 기록과 요금표가 입력으로 주어질 때, 각 차량의 주차요금을 구하여 차량번호 기준 오름차순으로 정렬한 요금의 리스트를 반환해야한다. 시도-공통: 시간 처리, 반복문 사용, 남은 차 처리 def str_to_min(t): h, m = t.split(":") return int(h) * 60 + int(m) 먼저 split을 이용해 입/출차 시간을 분단위 정수로 바꾸어주는 함수를 정의한다. def solution(fees, records): parking = {} minuites = {} for re.. 프로세스,스레드,멀티프로세싱, 멀티 스레딩 프로세스 프로세스는 기본적으로 메모리에 적재된다.(페이징을 통해 보조저장장치에 일부 저장되어있는 경우도 있다.) 사용자가 볼수 있는 공간에서 실행되느냐 아니냐에 따라 Foreground Process, Background process로 나뉜다. 백그라운드 프로세스중 대다수는 사용자와 직접 상호작용을하지 않고 정해진 일만 수행한다.(데몬/서비스) 포그라운드 프로세스가 백그라운드 프로세스로 전환될 때는 보통 사용자와 직접 상호작용을 할 수 있는 상태이다. 커널 영역에서의 관리 프로세스 제어블록(PCB) 프로세스 실행에는 CPU의 사용이 필요하지만 CPU는 한정된 리소스이다. 따라서 빠르게 번갈아 가며 한정된 시간동안만 사용해야하기 때문에 각 프로세스마다 고유한, 프로세스의 관련 정보를 저장하는 자료구조 P.. 각 타입별 중요 메소드 23.04.24 1. 문자열 #### string #### # count : 서브 스트링의 등장 횟수를 센다. changsoo = "Hello Changsoo!" count_ = changsoo.count('o') print(count_) # 3 # find : 서브 스트링의 첫 시작지점을 반환한다. 없으면 -1 반환 find_ = changsoo.find('oo') print(find_) # 12 find_ = changsoo.find('o0') print(find_) # -1 # index : 서브 스트링의 첫 시작지점을 반환한다. 없으면 에러 find_ = changsoo.index('oo') print(find_) # 12 try: find.. 23.04.05 TIL 오늘 한 것 코딩테스트(순서쌍개수,소수찾기,소수만들기)(https://spear-mans-dev.tistory.com/6) ERD 설계 강의 수강(정리) Django 강의 수강(작성중...) 문제 1. Django: redirect실패 @login_required def write_comment(request,id): if request.method=='POST': ... return redirect(f'tweet/{id}') 위와 같이 veiws.py에 코드를 작성하였더니 브라우저에서 POST요청을 보낸뒤 다음과 같이 에러가 발생했다. 시도 1. urls.py 확인 에러메시지를 읽어보면, 등록되지 않은 주소에 접근하려 했다는 걸 알 수 있다. 그래서 urls.py를 먼저 확인해 제대로 주소를 등록했는지.. 23.04.04 TIL 오늘 한 것 장고(django) 기초강의 수강 코딩테스트 풀이(삼총사,키패드누르기,성격유형검사) 첫 페어 프로그래밍 1. 삼총사 문제 이해 이 문제는 조합(combination)을 이용해서 풀어야 하는 문제이다. 모든 경우의 조합을 만든 뒤 조건에 맞는(갯수 3, 총합이 0) 조합의 갯수를 반환하면 된다. 시도 1. 모듈 사용 from itertools import combinations def solution(number): cnt = 0 for i in combinations(number,3): if sum(i) == 0: cnt += 1 return cntitertools 모듈의 combination을 이용하여 쉽게 해결 할 수 있다. 그러나 이런 풀이는 모듈을 사용할 수 없을 경우에는 소용이 없다.. 이전 1 2 다음