BeautifulSoup 데이터를 추출하는데 필요한 기능이 들어 있는 파싱(parsing)라이브러리 웹 스크래핑에 활용할 수 있습니다. 파싱 : 받아온 데이터에서 필요한 내용만 추출하는 것 스크래핑(scraping) : 컴퓨터 프로그램이 다른 프로그램으로부터 들어오는 인간이 읽을 수 있는 출력으로부터 데이터를 추출하는 기법 예제를 통해 이해하는 것이 빠를 것 같습니다. Ex import requests from bs4 import BeautifulSoup # url을 정의하고 requests library를 이용하여 get 요청 > html 값을 text로 받아옵니다. url = "https://finance.naver.com/sise/" response = requests.get(url).text # ..
백준11404번 플로이드 2021.06.20 플로이드 Solution 플로이드 알고리즘으로 해결하였습니다. input start, end 로 2차원 배열(input_map) 에 cost 저장 노선이 여러개일 경우 짧은 것으로 갱신 floyd 알고리즘으로 모든 최단 경로 찾기 결과가 inf 인 경우, 경로가 없는 것이므로 0으로 수정 (문제 조건) Source # 2021.06.20 inf = int(1e9) def floyd(input_map, V): for i in range(V): input_map[i][i] = 0 for k in range(V): for i in range(V): for j in range(V): input_map[i][j] = min(input_map[i][j], input_ma..
[Python] 객체지향프로그래밍 - OOP (Object Orientated Programming) Object Orientated Programming in Python https://www.youtube.com/watch?v=JeznW_7DlB0 를 참고하여 작성하였습니다. 모든 Python의 구현은 Class의 Instance인 Object로 이루어집니다. 오버로딩 / 오버라이딩 오버로딩 : 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개 변수의 개수나 타입이 다르면 다르게 정의되는 것을 의미합니다. 오버라이딩 : 상속관계에 있는 부모클래스에서 이미 정의된 메소드를 자식클래스에서 같은 시그니쳐를 갖는 메소드로 재정의하는 것을 의미합니다. 특수한 메서드 파이썬에는 내..
[Python] exe 파일 만들기 (PyInstaller) Python 코드를 실행 가능한 exe 파일로 만드는 방법입니다. (Python 이 설치되어있는 상태에서 가능합니다.) PyInstaller 설치 명령프롬프트 (ex. bash) 에서 pip로 설치합니다. $ pip install pyinstaller exe 파일 만들기 Python 코드가 있는 directory 로 이동한 뒤, pyinstaller 명령어로 exe 파일로 만듭니다. 콘솔창 출력되지 않도록 만들기 실행했을 때 콘솔창이 출력되지 않도록 하려면 명령어에 -w / --windowed 를 추가하면 됩니다. 실행파일 하나만 생성하도록 만들기 명령어에 -F / -onefile 을 추가하면 됩니다. # pyinstaller codefile...
GIL, Global Interpreter Lock 멀티스레드 환경에서는 여러스레드에서 동시에 객체에 접근하려 하는 동기화 문제(Race Condition)가 발생할 수 있습니다. 이를 해결하기 위해 스레드가 객체에 접근하는 것을 막기 위한 Mutex/Semaphore 가 필요합니다. C에서 Thread를 사용할 때, 멀티스레드 환경에서 Race Condition이 일어나지 않도록 하는 것을 개발자에게 맡깁니다. 반면, Python은 GIL를 통해 인터프리터가 한 스레드만 하나의 바이트코드를 실행시키도록 Lock을 겁니다. Python 메모리 관리 Python이 할당된 메모리를 관리하는 기본적인 방식 두 가지가 있습니다. Garbage Collection Reference Counting 이 중 Refe..

2nd List Rotate Python의 내장함수 (unpack , zip ) 를 이용해서 2차원 list를 회전시킬 수 있습니다. pack / unpack Python은 * 혹은 ** 를 이용하여 container type data를 pack / unpack 할 수 있습니다. tuple, list의 경우 * 를, dict의 경우 ** 를 사용합니다. packing 은 여러개의 객체를 하나의 객체로 합쳐줍니다. * 를 붙인 매개변수에 하나 혹은 여러개의 객체가 들어올 경우 해당 객체들은 packing 되어 저장됩니다. def testFunc(*num): print(num) testFunc(5, 6, 7) # 결과 : (5, 6, 7) unpacking 은 여러개의 객체를 포함하고 있는 하나의 객체를 풀..
인구이동 Solution BFS 모든 나라를 돌면서 국경선을 공유할 나라를 묶는다. 국경선을 공유한 나라의 인구수를 업데이트한다. 인구이동이 없을 때까지 반복한다. 2019.10.19 C++ 풀이 #include #include #include using namespace std; const int MAX = 55; int map[MAX][MAX][2]; bool check[MAX][MAX]; pair rememMap[MAX*MAX]; int N,L,R; queue myQ; int dx[4] = {1,0,-1,0}; int dy[4] = {0,1,0,-1}; int BFS(int y,int x,int nowIdx,int nextIdx){ int count = 0; int sumMap = map[y][x]..
Python 가상환경 파이썬으로 개발을 진행하면서 목적에 맞게 새로운 패키지와 모듈을 사용하게 됩니다. Django 개발을 위해 환경구축을 할 때, 여러가지 버전 중 특정 버전을 사용하여 개발하기 위해 가상환경을 구축하여 분리해 개발을 진행했습니다. 이처럼 응용프로그램에 특정 버전의 라이브러리가 필요한데, 같은 시스템의 다른 응용 프로그램에서는 다른 버전이 필요한 경우가 생길 수 있습니다. 가상환경을 구축함으로써 환경을 분리하여 이를 가능하게 할 수 있습니다. Virtual environment Python에서 가상환경을 만들고 관리하는데 사용하는 모듈은 venv 입니다. 만약 여러 Python 버전이 있다면 구축한 가상환경에서 사용할 Python 버전을 선택할 수 있습니다. 가상환경이란, 같은 시스템에..
Comment