vscode 터미널에서 설치 pip3 install flask pip3 install Flask-SQLAlchemy pip3 install flask-login 📁 __init__.py 파일 만들기 from flask import Flask from flask_sqlalchemy import SQLAlchemy from os import path from flask_login import LoginManager def create_app(): app = Flask(__name__) app.config['SECRET_KEY'] = "helloworld" @app.route("/") def home(): return "hello" return app website 폴더 안에 파일을 만들고 위의 코드를 입력한..
x = int(input()) d = [0]*30001 for i in range(2, x+1): # 1로 만드니까 2부터시작 d[i] = d[i-1]+1 # 가정 (최소연산횟수) if i % 2 == 0: d[i] = min(d[i], d[i//2]+1) # 2로 나누어 떨어졌을때나, 1을 뺀값중에 더 작은 값을 넣음 if i % 3 == 0: d[i] = min(d[i], d[i//3]+1) if i % 5 == 0: d[i] = min(d[i], d[i//5]+1) print(d[x])
이진 탐색 알고리즘 순차 탐색: 특정한 데이터를 찾기 위해 앞에서부터 하나씩 확인하는 방법 이진 탐색: 정렬된 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법 (시작점, 끝점, 중간점을 이용하여 탐색 범위 설정) 이진 탐색 소스코드: 재귀적 구현 def binary_search(array, target, start, end): if start > end: return None mid = (start+end)//2 # 찾은 경우 중간점 인덱스 반환 if array[mid] == target: return mid # 중간점의 값보다 찾고자하는 값이 작은 경우 왼쪽 확인 elif array[mid] > target: return binary_search(array, target, start, m..
📖 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):..