Python
-
[Python] ubuntu에 Python 버전 설정하기Programming Language/Python 2022. 7. 24. 22:01
Python 버전 확인 python3 --version python --version Python 설치경로 확인 which python which python3 Alternatives로 Python 버전 변경 1. alternatives 확인 # python sudo update-alternatives --config python # python3 sudo update-alternatives --config python3 2. alternative 등록 # python sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.9 1 sudo update-alternatives --install /usr/bin/python pyt..
-
[Django] MVT 패턴Backend/Django 2022. 5. 8. 22:41
MVC 패턴이란? 디자인 패턴 중 하나로 Model, View, Controller의 약자이다. Model : 어플리케이션 정보(데이터) View : 사용자 인터페이스 Controller : 데이터와 비즈니스 로직사이 상호 동작 관리 이 패턴을 사용하면 사용자가 보는 페이지, 데이터 처리, 이 둘 사이의 제어 3가지 역할에 대해서 각각 역할에 집중할 수 있다. 유지보수성, 확장성, 유연성이 증가하고 중복 코딩을 줄인다. MVT 패턴이란? 장고 프레임워크에서는 MVC에서 View를 Template, Controller를 View로 MVT 패턴이라고 한다. Model : 데이터베이스에 저장되는 데이터 Template : 사용자에게 보여지는 UI View : 프로그램 로직이 동작해 데이터를 가져오고 처리하여 ..
-
[Python] virtual env 설정Programming Language/Python 2022. 5. 8. 17:26
Virtual env venv를 사용하여 프로젝트 별 전용 가상공간을 생성하여 프로젝트 별로 독립된 파이썬 실행환경을 가질 수 있다. 여러 프로젝트의 python package를 섞이지 않게 관리할 수 있는 장점! 서로 다른 프로젝트의 패키지 버전이 충돌날 일이 없어진다. venv 설정 python3.x 버전일경우 python대신 python3으로 명령어 실행 # 파이썬 버전 확인 python --version # 가상환경 생성 cd project_directory python -m venv .venv # 윈도우 가상 환경 활성화 cd .venv/Scripts activate # 우분투 가상 환경 활성화 source .venv/bin/activate # 가상환경 비활성화 deactivate require..
-
[Django] django 프로젝트 시작하기Backend/Django 2022. 5. 8. 17:10
Django 설치 pip install django Django 프로젝트 생성 및 실행 # 프로젝트 생성 django-admin startproject [project name] # 프로젝트 내부 이동 cd [project name] # 8080포트에서 프로젝트 실행(default 8000) python manage.py runserver 8080 Django 앱 생성 python manage.py startapp [app name] Django Sqlite3 DB 사용 # projectname/setting.py에 app 설치 알리기 INSTALLED_APPS = [ ... 'appname.apps.AppnameConfig', ] # app의 migration파일 만들기 python manage.py ..
-
[BOJ] 10986번: 나머지 합Algorithm/Baekjoon Online Judge 2022. 4. 27. 17:43
문제풀이 https://www.acmicpc.net/problem/10986 10986번: 나머지 합 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) www.acmicpc.net 처음에는 누적합을 구하고 그 안에서 만들수 있는 조합에 대한 범위로 모든 경우를 살펴서 나머지가 0인 것을 찾았지만 이는 시간초과가 났다. 아무래도 2중 반복문을 써서 계속 배열에 접근하는게 문제였던 것 같다. 해결할 방식의 경우 다른사람의 풀이를 참고했는데 이해하기가 쉽지 않았다. 따라서 설명을 자세하게 적어보려고 한다. 주어진 입력이 다..
-
[BOJ] 12865번: 평범한 배낭Algorithm/Baekjoon Online Judge 2022. 4. 16. 15:17
문제풀이 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 가장 일반적인 냅색 문제이다. dp를 통해 해결할 수 있는데 생각보다 조건을 생각할 것이 많았다. 나의 경우 다이나믹프로그래밍 배열을 1차원으로 작성하는 것을 선호하는데 이 경우에는 2차원 배열로 먼저 작성했다. 2차원 배열의 행은 각 물건을 나타내며, 열은 무게를 나타낸다. 0번째 행, 0번째 열은 비워두기 때문에 (n+..
-
[BOJ] 9251번: LCSAlgorithm/Baekjoon Online Judge 2022. 4. 15. 00:22
문제풀이 https://www.acmicpc.net/problem/9251 9251번: LCS LCS(Longest Common Subsequence, 최장 공통 부분 수열)문제는 두 수열이 주어졌을 때, 모두의 부분 수열이 되는 수열 중 가장 긴 것을 찾는 문제이다. 예를 들어, ACAYKP와 CAPCAK의 LCS는 ACAK가 된다. www.acmicpc.net 두 개의 문자열이 주어질 때 두 문자열에서 매치되는 가장 긴 문자열의 길이를 구하는 문제이다. 사실 어떻게 하면 풀 수 있을지 고민을 좀 했다. 생각보다 쉽게 방식이 안 떠올라서 이전에 계산한 값을 어떻게 하면 현재 계산에 적용할 수 있을지 방법을 알기위해 노력했다. 이 문제에서는 알파벳 하나가 어떤 알파벳과 매치될지 알 수 없다는 점이 가장 ..
-
[BOJ] 2565번: 전깃줄Algorithm/Baekjoon Online Judge 2022. 4. 13. 16:34
문제풀이 https://www.acmicpc.net/problem/2565 2565번: 전깃줄 첫째 줄에는 두 전봇대 사이의 전깃줄의 개수가 주어진다. 전깃줄의 개수는 100 이하의 자연수이다. 둘째 줄부터 한 줄에 하나씩 전깃줄이 A전봇대와 연결되는 위치의 번호와 B전봇대와 연결되는 www.acmicpc.net 우선 전깃줄을 하나씩 보면서 그때까지 가질 수 있는 최대 전깃줄 개수를 구해야 한다는 것을 제일 먼저 생각해야한다. 그렇다면 최대 전깃줄 개수를 어떻게 구할 수 있을까를 생각해야한다. 두개의 전깃줄이 있을 때 A와 B에서의 위치를 (a1, b1), (a2, b2)라고 한다면 전깃줄이 교차되지 않기 위해서는 a1 a2 and b1 > b2 여야한다. ..