문제 www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 문제 상황 - 각자리 숫자의 차가 1씩 나는 수를 만들 때 자리수마다 만들 수 있는 수의 개수를 구한다. 해결 전략 - N자리 숫자는 N-1자리 숫자의 끝에 숫자를 붙이는 구조인데, N-1자리의 1의 자리가 0 또는 9인 경우는 두가지가 아니라 1가지 숫자만 올 수 있다. 결국 number_(N) = number_(N-1) * 2 - (1의 자리가 0 또는 9인 경우의 수)가 된다. 이 때 1의 자리가 0 또는 9인 경우의 수는 N-2에서 1 또는 8의 개수가 된다. 코드 1 2 3 4 5 6 7 8 9 10 11 12..
문제 www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 문제 상황 - 입력받은 정수 N을 숫자 1,2,3의 합을 이용해서 표현할 수 있는 방법의 수를 구한다. 해결 전략 - N을 표현하는 방법의 수는 N-1을 표현하는 방법에 1을 더하거나, N-2를 표현하는 방법에 2를 더하거나, 아니면 N-3을 표현하는 방법에 3을 더하는 경우이므로 항이 3개인 피보나치가 된다. 코드 1 2 3 4 5 6 7 8 9 10 from sys import stdin input = stdin.readline T = int(input()) for _ in range(T): N = ..
문제 www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 문제 상황 - 연산 3가지를 이용해서 주어진 정수를 1로 만드는데 필요한 최소한의 연산 횟수를 출력한다. 해결 전략 - 부분 문제의 중복이 발생하므로 동적 계획법을 활용한다. 연산이 3개이므로 각각의 경우를 나누어 연산한다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 from sys import stdin input = stdin.readline N = int(input()) cache = [0,0,1,1] + [0]*(N-3) counts = 0 for i in range(4..
문제 www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net 문제 상황 - 666이 들어가게 하여 666부터 1666으로 시작하여 n번째 숫자를 찾는다. 해결 전략 - dp문제라고 안내를 받았는데 풀이의 대부분은 brute force였다. 문제는 범위인 10000 이내에 숫자의 범위를 알수가 없어 속도 이슈가 발생할지 아닌지 알 수가 없다.(결과적으로 10000번째 요소는 2666799으로 속도는 매우 여유가 있다.) 코드 1 2 3 4 5 6 7 8 9 10 1..
Logging - 다양한 경로로 메세지 로깅(파이썬에서 지원해주는 로깅 시스템을 django도 지원해준다.) Messages framework - 유저에게 1회성 메세지 노출 목적의 프레임워크 Forms - 유저가 어떤 값을 입력하는 입력폼(입력 서식) 생성, 입력값 유효성 검사 및 DB로의 저장 캐싱 - 메모리 캐싱, 디스크 캐싱 등을 django에서 표준화된 인터페이스로 지원해준다. Geographic - DB의 Geo 기능 활용 Django 기본 앱 - django 디렉토리의 django/django/tree/master/django/contrib 에 존재 - 앱은 django가 규정해놓은 하나의 파이썬 패키지이다. - admin(관리자), auth(인증), messages(메세지 프레임워크), s..
django-admin startproject (프로젝트명) - (프로젝트명)으로 django 프로젝트 생성 - python -m django startproject (프로젝트명) 으로도 가능 conda env list - conda에서 생성한 가상환경 리스트를 확인한다. 프로젝트 폴더명 - 생성된 프로젝트의 최상위 폴더명은 단순한 폴더의 이름 뿐이므로 변경 가능하다. 하지만 프로젝트 내부에 존재하는 같은 이름의 프로젝트 폴더명은 settings.py, __init__.py, urls.py, wsgi.py 등에서 참조하고 있기 때문에 변경하면 안된다. asgi.py // wsgi.py - django 3.0에서는 asgi.py가 추가되었는데 비동기쪽 지원이 가능한 부분이다. python manage.py..
conda create --name (가상환경이름) python=3.8 - conda에서 가상환경이름으로 python버전이 3.8인 가상환경을 설치하겠다. conda activate (가상환경이름) // conda deactivate - 가상환경으로 진입한다 // 가상환경에서 나온다. where python/pip // exit() - 설치된 python, pip의 위치를 확인한다. (가상환경) pip install "django~=3.0.0" - 3.0.*버전 중에 최신 버전 설치를 시도한다. django-admin --version - django version 확인
변수 - 값이 위치한 메모리상의 주소에 접근하기 위해 인간이 알아들을 수 있는 언어로 정의한 식별자(identifier)이다. 데이터 타입 - 원시 타입(primitive data type) - boolean - null - undefined - number - string - symbol - 객체 타입(object/reference type) - object 원시 타입(Primitive Data Type) - 원시 타입의 값은 변경 불가능한 값(immutable value)이며 pass-by-value(값에 의한 전달)이다. Immutablility(변경 불가성) - 객체가 생성된 이후 그 상태를 변경할 수 없는 디자인 패턴. - JS는 object를 제외한 모든 타입이 imuutable 하다. 1 2..
- Total
- Today
- Yesterday
- Brackets#Stacks and Queues#Codility#Python
- 텀 프로젝트#백준알고리즘#Python
- 섬의개수#백준알고리즘#Python
- NumberofDiscIntersections#Codility#Sort#Python
- Triangle#Sorting#Codility#Python
- 파이썬알고리즘인터뷰#4장
- 나무자르기#BOJ#이분탐색#Python
- filter#isalnum#lower
- 쿼드트리#BOJ#분할정복#Python
- 백준 알고리즘#BackTracking
- 날짜 계산#BOJ#완전탐색#Python
- 리모컨#완전탐색#BOJ#Python
- django
- 병든 나이트#BOJ#탐욕법#Python
- 공유기 설치#BOJ#이분탐색#Python
- N으로 표현#DP#Programmers#Python
- 종이자르기#분할정복#BOJ#Python
- PassingCars#Codility#Python
- 순열사이클#BOJ#Python
- 랜선자르기#이분탐색#BOJ#Python
- django#slicing
- 반복수열#백준알고리즘#Python
- Swift#Tuples#Range
- 미로 탐색#백준알고리즘#Python
- 터틀비치#리콘#xbox#controller
- 배열합치기#분할정복#BOJ#Python
- 암호코드#dp#BOJ#Python
- API#lazy#
- 토마토#백준알고리즘#Python
- Distinct#Codility#Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |