분류 전체보기

코드first_string = input()second_string = input()h,w = len(first_string), len(second_string)cache = [[0]*(w+1) for _ in range(h+1)]for i in range(1, h+1): for j in range(1, w+1): if first_string[i-1] == second_string[j-1]: cache[i][j] = cache[i-1][j-1]+1 else: cache[i][j] = max(cache[i][j-1], cache[i-1][j])print(cache[-1][-1])  설명두 개의 string을 2차원 배열로 비교하는 것으로..
배경아따 포도주를 저렇게 많이 먹을 수 있는게 부럽다시식이라면 꽁짜겠지 포도주로 취해보고 싶다초록병 이스 마이 라이프 https://www.acmicpc.net/problem/2156  코드n=int(input())drink = []for _ in range(n): drink.append(int(input()))dy=[0]*10001drink.insert(0,0)dy[1] = drink[1]dy[2] = drink[1]+drink[2]dy[3] = max(drink[3]+drink[1], drink[3]+drink[2], dy[2])for i in range(4, n+1): dy[i] = max(dy[i-3]+drink[i]+drink[i-1], drink[i]+dy[i-2], dy[i-1])..
코드n=int(input())dy=[0]*1001ls=list(map(int,input().split()))ls.insert(0,0)for i in range(1, n+1): for j in range(i): if ls[i] > ls[j]: dy[i] = max(dy[i], dy[j]+1)print(max(dy))  설명dynamic list에는 해당 칸에 가장 큰 증가수열의 값을 넣습니다.앞의 숫자보다 크다면 증가 수열을 만들 수 있으므로 해당 dy list 안에 있는 가장 큰 증가수열에 +1을 해주면 됩니다 백준에 있는 예시인 10 20 10 30 20 5020의 경우 앞의 10보다 크기에 10이 만들 수 있는 가장 큰 증가수열 1에 +1을 더해줍니다30의 경우 ..
Django 페이지네이션 구현 코드Params limit = int(request.query_params.get('limit', '15')) page = int(request.query_params.get('page', 1)) offset = max(page -1, 0 ) * limit next_offset = max(page, 1) * limit Use offsetUse offset for list slicing if there are objects or lists # You Can use this pattern to objects or another list review_list = [review for owner_place..
Django JWT 구현 코드pip install djangorestframework-simplejwt pip install and setting in setting.pyINSTALLED_APPS = [ ... 'rest_framework_simplejwt', ...] authentication settingREST_FRAMEWORK = { ... 'DEFAULT_AUTHENTICATION_CLASSES': ( ... 'rest_framework_simplejwt.authentication.JWTAuthentication', ) ...}  Use simplejwt library and url setting..
JWT 이란JWT는 Json Web Token의 약자로 일반적으로 클라이언트와 서버 사이에서 통신할 때 권한을 위해 사용하는 토큰이다. 웹 상에서 정보를 Json형태로 주고 받기 위해 표준규약에 따라 생성한 암호화된 토큰으로 복잡하고 읽을 수 없는 string 형태로 저장되어있다. JWT 구성JWT는 헤더(header), 페이로드(payload), 서명(signature) 세 파트로 나눠져 있으며, 아래와 같은 형태로 구성되어 있다.세 개의 구성은 .으로 구분되어있다.헤더 (Header) 어떠한 알고리즘으로 암호화 할 것인지, 어떠한 토큰을 사용할 것 인지에 대한 정보가 들어있다. 정보 (Payload) 전달하려는 정보(사용자 id나 다른 데이터들, 이것들을 클레임이라고 부른다)가 들어있다..
· Django/model
배경Django에 상품에 카테고리를 지정하려고 했습니다.상품에는 카테고리가 N개 지정이 가능하고 카테고리에서도 상품이 N개 지정 가능한 N:N관계가 만들어집니다처음에 Foreign Key로 만들어서 prefetch를 통해서 원하는 값들을 가져오는 방안을 떠올랐습니다.그러면 상품에서 원하는 카테고리 값들을 가져오고 싶을때 모든 상품에서 해당 카테고리에 속해있는 것을 훑어보는 작업이 필요합니다그러한 이유로 카테고리에도 상품을 참조해야하는데 N:N이면 ManyToMany를 지정해 Django에서 자동으로 pk가 담긴 중간 테이블을 만들어줍니다.그러나 자동으로 만들게 되면 비즈니스 로직 상 좋지 않은 결과를 초래합니다. 예를들어 설정 시각이나 이유(예시입니다)를 적어야 할 시 칼럼 추가가 어렵기 때..
· Python
배경 예상치 못한 request나 에러가 발생했을 시 raise를 일으킨 후(raise 올리다 ㅎㅅㅎ) 클라이언트에게 알려야 하는데 이 부분을 어떻게 처리할 지 검색을 통해서 알게된 내용을 공유합니다! 코드 user = User.objects.filter(id=user_id).first() try: if not user: raise DoesNotExist(target=User) except DoesNotExist as e: print(e.target, e.message) 설명 try except문으로 감싸고 try 안에서 에러가 발생합니다 except에서 해당 에러 발생 시 값들이 전달되고 return을 통해 클라이언트에게 알려주거나 로그에 남겨주는 방식으로 진행하면 됩니다! 배운 점 에러를 클라이언트에..
두잇 두두
'분류 전체보기' 카테고리의 글 목록 (8 Page)