Python
-
백준 DP 문제 풀이 (Silver) 11053번, 1932번, 1912번, 9461번 python알고리즘 2023. 7. 21. 15:03
1. 가장 긴 증가하는 부분 수열 (11053번) 숫자 수열이 주어질 경우 가장 길게 증가하는 부분 수열의 길이를 구하는 문제입니다. 예시) {10,20,10,30,20,50} 인 경우 가장 긴 증가하는 부분 수열은 {10,20,30,50}이고 길이는 4입니다. 앞에서부터 차례로 자신을 포함하는 가장 긴 부분 수열을 구하면 됩니다. 자신을 포함한 가장 긴 수열을 구하는 방법은, 자신보다 앞에 위치하면서 자신보다 작은 숫자 중 현재 가장 긴 증가하는 부분 수열을 가지는 숫자에 자신을 붙이면 됩니다. 위의 예시 중 4번째 인덱스의 30을 포함한 부분 수열을 구하는 예를 들어보겠습니다. 30보다 앞에 위치한 숫자 중 30보다 작은 10,20,10 중 증가하는 부분 수열 중 가장 긴 숫자는 20입니다. 그러므로..
-
24092번 알고리즘 수업 - 퀵 정렬 3알고리즘 2023. 1. 29. 17:11
문제 설명 이번 문제는 두 수열 A, B가 주어졌을 경우 A 수열이 퀵 정렬로 정렬되는 과정에서 생길 수 있는 수열 중 B와 동일한 수열이 있는지 확인하는 문제입니다. 문제 풀이 의사 코드 설명 이번 문제는 퀵정렬에 대한 의사코드가 주어져 있으므로, 코드 그대로 퀵 정렬을 구현해보면 됩니다. quick_sort(A[p..r]) { # A[p..r]을 오름차순 정렬한다. if (p 2 5 1 4 3(i=1, j=2) -> 2 5 1 4 3(i=1, j=3, A[2]와 A[3]이 교환됨) -> 2 1 5 4 3(i=2, j=4) -> 2 1 5 4 3(i=2, j=5,..
-
21738번 얼음깨기 펭귄알고리즘 2023. 1. 25. 10:14
문제 설명 이번 문제는 얼음깨기 게임의 업그레이드 버전을 플레이하면서 펭귄을 떨어뜨리지 않고 가장 많은 얼음을 깰 수 있는 방법을 찾는 문제입니다. 얼음깨기 게임의 업그레이드버전에 추가된 규칙은 다음과 같습니다. 얼음의 종류는 지지대의 역할을 하는 얼음과 일반 얼음 두 가지가 있다. 일반 얼음들은 지지대가 연결되어 있어야만 깨지지 않고 있는다. 펭귄이 올라가 있는 일반 얼음은 두 개의 지지대가 연결되어 있어야지만 깨지지 않는다. 연결된다는 의미는 지지대로부터 서로 다른 일반 얼음들을 통해 연결 관계가 이어져 있는 것을 이야기 한다. 서로 다른 지지대가 펭귄이 올라가 있는 얼음을 거치지 않고 연결되는 경우는 없다. 지지대도 깨지는 얼음입니다. 문제 풀이 아이디어 1. 펭귄을 거치지 않으면 1개의 지지대만 ..
-
Flask 기본언어/Python 2022. 11. 30. 21:01
1. flask 구동 방법 1.1 virtualenv 진행하고 있는 더 많은 프로젝트들이 서로 다른 Python 버전에서 작동해야 한다거나 혹은 서로 다른 버전의 Python 라이브러리들 에서 작동해야 한다면 virtualenv를 이용하여 Python을 아무런 문제 없이 각각의 프로젝트 환경에 맞게 다중설치가 가능하도록 해준다. 1.1.1 mac OS 혹은 Linux일 경우 sudo easy_install virtualenv 1.1.2 혹은 sudo pip install virtualenv 로 설치 가능하다. 1.2 자신만의 실행환경 만들기 mkdir myproject cd myproject virtualenv venv 1.3 실행환경 활성화 . venv/bin/activate 1.4 Flask 설치 s..
-
virtualenv로 가상환경 설정하기언어/Python 2022. 7. 16. 15:43
python으로 프로젝트를 진행할 경우 각기 다른 버전으로 세팅을 해줘야 하는 경우가 있다. 예를 들어 flask와 fastapi로 각각 serving 서버와 backend 서버를 구성할 경우를 생각해보자. 이미 fastapi 서버를 파이썬 버전 3.6으로 구축을 마친 상태에서 flask는 파이썬 버전을 3.7이상을 요구하기 때문에 새로운 파이썬 버전이 필요하게 된다. 이럴 경우 각각의 서버를 다른 파이썬 버전 환경에서 구동될 수 있도록 해주는 것이 파이썬 가상환경이다. 파이썬 가상환경에는 virtualenv, pipenv, venv, pyenv, conda가 있다. 오늘 우리는 virtualenv에 대해 알아볼 계획이다. virtualenv virtualenv는 host환경과는 별도로 각각의 프로젝트가..
-
Python 몰랐던 문법 정리언어/Python 2022. 7. 16. 15:03
매개변수 *args, **kwargs 함수에서 몇 개의 인자가 들어올지 모르는 상황이나, 매개변수 선언을 한 개만 하고 싶을 경우 사용한다. *args - 선언된 매개변수에 인자들이 튜플 형식으로 들어간다. 예시) def function(*args): print(args) function('hi',4,'python') #('hi', 4, 'python') **kwargs - kwargs - 선언된 매개변수에 인자들이 딕셔너리 형식으로 들어간다. 예시) def function(**kwargs): print(kwargs) function(name='cotton',age=26,hi='hello') #{'age': 26, 'hi': 'hello', 'name': 'cotton'} 주의) def argsFunct..