반응형

전체 글 138

(파이썬 python) 백준 9465번 : 스티커

# 9465번 : 스티커 t = int(input()) for _ in range(t): n = int(input()) dp = [list(map(int,input().split())),list(map(int,input().split()))] for i in range(1,n): if i == 1: dp[0][i] += dp[1][i-1] dp[1][i] += dp[0][i-1] else: dp[0][i] += max(dp[1][i-1], dp[1][i-2]) dp[1][i] += max(dp[0][i-1], dp[0][i-2]) print(max(dp[0][n-1],dp[1][n-1])) 총 세가지 케이스로 나눠서 생각해 볼 수 있다. 1) n == 1인 경우 제일 쉬운 케이스이다. 아래의 그림처럼 두..

(파이썬 python) 백준 9251번 : LCS

LCS는 임의의 두 문자열에서 가장 긴 subsequence의 길이를 구하는 문제다. 처음 접해보는 개념이라 2시간정도 혼자서 고민하다가 다른 사람의 정리된 블로그를 보면서 이해하였다. 이미 만들어 놓은 결과위에 새로운 문제들을 이어서 푼다는 DP의 특징을 기억하고 있을 필요가 있다. 위의 표에서 (2,3), (2,6), (3,2), (3,5), (4,3), (4,6), (6,7)은 모두 행과 열의 문자가 같다. 이렇게 행과 열의 문자가 같은 셀의 값은 왼쪽 대각선 위에 있는 수에서 1을 더한 값이 되는 규칙을 찾을 수 있다. 1. 각각의 문자열에서 가장 최근에 추가된 문자가 같을 경우 왼쪽 대각선 위의 셀에서 각각 같은 문자열이 추가되었으므로 +1을 해준다. 예) (3,5)셀 : CAP와 A에서 C가 ..

(파이썬 python) 백준 1010번 : 다리 놓기

조합 공식을 이용해서 풀 수 있는 문제였다. 고등학교때 이후로 머리속에서 꺼내보지 않았던 개념이라 인터넷으로 다시 조합공식을 찾아보기도 했다....하핳 펙토리얼(fac)함수를 정의하고 정의한 함수를 이용해서 조합 공식을 만들어서 풀었다. # 1010번 : 다리놓기 # 조합(Combination)공식을 이용해서 쉽게 풀 수 있다. t = int(input()) def fac(n): num = 1 for i in range(1,n+1): num *= i return num for _ in range(t): m,n = map(int,input().split()) bridge = fac(n) // (fac(m)*fac(n-m)) print(bridge)

(파이썬 python) 백준 2193번 : 이친수

# 2193번 : 이친수 # 재귀방법으로 피보나치 수열을 만들면 시간복잡도가 크기 때문에 시간초과가 난다. # tablatoin 방법으로 만들면 시간면에서 훨 효율적이다. n = int(input()) table = [0]*91 table[1] = 1 table[2] = 1 for i in range(3,n+1): table[i] = table[i-1] + table[i-2] print(table[n]) n=1 : 1 n=2 : 1 n=3 : 2 n=4 : 3 n=5 : 5 n=6 : 8 ... 처음엔 그냥 숫자들을 적어보다 보니 규칙을 발견할 수 있었다. 피보나치 수열과 같은 규칙이었다. 재귀방법으로 문제를 풀게 되면 시간복잡도가 커지고 시간초과가 난다 tablation방법으로 피보나치 수열을 구현하면..

[django] ImageField upload_to 동적 업로드(함수 사용)

장고 imagefield에서 image데이터를 업로드할 때 dynamic upload가 가능하다. 장고에서 사용자가 사용하는 폴더가 media라고 보통 정해놓는데 이 media폴더에 이미지를 업로드할 때 이름을 따로 지정해주는 것을 dynamic upload라고 한다. ImageField의 upload_to옵션은 이미지가 저장되는 경로를 넣어주는 옵션인데 여기에 함수를 만들어서 동적 업로드가 가능하게 할 수 있다. # models.py def image_upload_to(instance, filename): ext = filename.split('.')[-1] # 이미지 파일 형식 따오기 return os.path.join(instance.UPLOAD_PATH, "%s.%s" % (uuid.uuid4()..

[django] debug_toolbar 세팅

django debug 툴바 설치 및 세팅 방법입니다. 1. install Package pip install django-debug-toolbar pip install -e git+https://github.com/jazzband/django-debug-toolbar.git#egg=django-debug-toolbar 둘중 한 방법을 선택해서 사용하고 있는 가상환경에 django-debug-toolbar패키지를 설치해준다. 2. Check for Prerequisites 이 설정은 startproject를 할 때 이미 세팅이 되는 부분이라서 웬만하면 따로 손볼일은 없고, 아래 코드처럼 되어잇는지 확인만 하면 된다. # 프로젝트 디랙토리/settings.py INSTALLED_APPS = [ # ... ..

[django] Related Field got invalid lookup: icontains 오류

search_fields 옵션에 원하는 필드들을 넣어서 admin페이지에서 검색 가능하도록 만들려고 하는 중에 "Related Field got invalid lookup: icontains" 이런 오류에 맞딱뜨렸다. 아래 코드가 admin.py에서 오류가 났었던 코드이다. models.py를 보면 title, content 필드는 Post테이블 자체필드이지만 username 은 User라는 테이블에서 외래키로 연결시켜놓은 상태이다. 즉 username필드는 User테이블과 연결시켜주는 고유값일 뿐이다. 따라서 django는 User테이블에서 어떤 필드를 가지고 검색해야 하는지 모르는 것이다. 그래서 에러가 났을 뿐... # models.py class Post(BaseModel): username = ..

[django] User모델 커스터마이징 할 때 오류

AbstractUser를 사용해서 User모델을 커스터마이징 하고 나서 마이그레이션 할 때 아래와 같은 오류가 났을 때 해결방법 장고에서 만들어 둔 User 모델이 아니라 내가 커스텀해서 만든 User모델을 사용하고자 하는 것이므로 장고한테도 이 사실을 알려줘야 한다. 프로젝트 디렉토리의 settings.py에 AUTH_USER_MODEL 환경 변수를 '[앱이름].[모델이름]'이런식으로 지정해주면 된다. 예시) AUTH_USER_MODEL = 'users.User'

[django] ImageField Form 이미지 업로드하기.

django Form에서 이미지를 업로드해서 DB에 저장하는 기능을 구현하는 방법이다. 이미지 파일이 form에서 view로 넘어가지도 않는 문제, view에서 조회하는 문제들을 해결하였다. 1. media폴더 경로 설정 프로젝트 폴더 settings.py 마지막줄에 MEDIA_URL, MEDIA_ROOT 추가 # setting.py # ... 이외의 기본 세팅들 MEDIA_ROOT = BASE_DIR/'media' MEDIA_URL = '/media/' 프로젝트 폴더 urls.py에 urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 추가 # urls.py from django.contrib import admin f..