📖 question https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net ✍️ answer n = int(input()) dp = [0]*1001 dp[1] = 1 dp[2] = 3 # n=1 1가지 | # n=2 3가지 || = ㅁ # n=3 5가지 ||| =| ㅁ| |= |ㅁ # n=4 11가지 (3에서 |가 오른쪽에 붙어서 5개 + 왼쪽에 붙어서 2개 + ㅁㅁ == ㅁ= =ㅁ) # 일반화: n-1+(n-2)*2 for i in range(3, 1001): dp[i] = dp..
📖 question https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net ✍️ answer n = int(input()) dp = [0] * 1001 # n은 1~1000까지의 수 dp[1] = 1 # n=1일 때, 1가지 dp[2] = 2 # n=2일 때, 2가지 for i in range(3, 1001): dp[i] = dp[i-1] + dp[i-2] # n=3부터는 (n-1)+(n-2)로 일반화할 수 있음 print(dp[n] % 10007)
Python DB API (PEP 249) 📕 Python DB API는 파이썬에서 여러 데이터베이스를 엑세스하는 표준 API이다. 표준 API는 데이터베이스 연결, SQL문 실행, 연결 닫기 등의 기본적 DB작업과 관련된 기능을 정의하고 있다. 📕 PEP(Python Enhancement Proposal)은 python 모듈 간의 유사성을 장려하기 위해 정의되었다. * API(Application Programming Interface): 두 애플리케이션 간의 상호작용 방법을 정의한 인터페이스 SQLite3 📕 서버가 아닌 응용 프로그램에 넣어서 사용하는 lite한 데이터베이스관리시스템이다. ✔️ SQLite3 모듈은 파이썬이 설치될 때 기본적으로 설치되는 표준 라이브러리로, SQLite에 대한 인터페..
n, m = map(int, input().split()) length = list(map(int, input().split())) # 최적의 수(=h)를 찾기 위해 이진탐색을 해야 함 start = 0 end = max(length) # 떡 중에 가장 긴 떡 h = 0 while start mid: # 떡이 mid보다 길면 자름, 안 길면 못 자름 total += i - mid # 잘린 떡 합하기 if total < m: # 반토막내면서 자르다가 떡이 m보다 부족해지면 끝점을 감소시킴 (더 자른다) end = mid-1 else: # 잘린 떡의 합이 m보다 크거나 같을 때 # 떡이 아직 m보다 크면 시작점을 늘림 (덜 자른다) h = mid # 최적의 h를 구하므로 기록해두고 start = mid+1 ..
라우팅 (routing) 📕 주소를 입력해서 들어온 요청을 담당하는 담당자는 함수이고, 요청을 연결하는 작업을 라우팅이라고 한다. @app.route('/') def Index(): return 'Index Page' 데코레이터 route 변수 규칙 📕 주소에서 가변적인 부분을 변수라고 한다. 변수를 사용할 땐 처럼 쓰고, 형변환이 필요할 땐 앞에 자료형을 써준다. 변수를 받아내는 매커니즘이 함수의 매개변수로 전달된다. (변수와 매개변수는 같은 이름이어야 함.) @app.route('/user//') def user_profile(username): print(username) return 'User ' + username @app.route('/post//') def show_post(post_id):..
📖 question https://www.acmicpc.net/problem/1924 1924번: 2007년 첫째 줄에 빈 칸을 사이에 두고 x(1 ≤ x ≤ 12)와 y(1 ≤ y ≤ 31)이 주어진다. 참고로 2007년에는 1, 3, 5, 7, 8, 10, 12월은 31일까지, 4, 6, 9, 11월은 30일까지, 2월은 28일까지 있다. www.acmicpc.net ✍️ answer # 나의 풀이 x, y = map(int, input().split()) for i in range(1, x): if i in [1, 3, 5, 7, 8, 10, 12]: y += 31 elif i in [4, 6, 9, 11]: y += 30 elif i in [2]: y += 28 if y % 7 == 1: prin..
📕 변수는 값을 저장할 메모리 공간을 식별하기 위해 붙인 이름을 말한다. 변수에 값을 저장하는 것을 할당이라 하고, 저장된 값을 읽어 들이는 것을 참조라고 한다. // 변수는 하나의 값을 저장하기 위한 수단이다. var userid = 1; var userName = 'Lee'; // 객체나 배열 같은 자료구조를 사용하면 여러 개의 값을 하나로 그룹화해서 하나의 값처럼 사용할 수 있다. var user = { id: 1, name: 'Lee'}; var users = [ { id: 1, name: 'Lee'}, { id: 2, name: 'Kim'} ]; 📕 식별자는 어떤 값을 구별할 수 있는 고유한 이름을 말한다. (변수, 함수, 클래스 등) 값은 메모리 공간에 저장되어 있어서 식별자는 값이 아니라 메..