HTML을 분석해 주는 BeautifulSoup BeautifulSoup 라이브러리 지난 실습에서 requests 모듈을 이용해 HTTP 요청을 보내고, 응답을 받았다. 그런데 res.body의 결과를 확인했을 때, 긴 텍스트 형식이라서 분석하기 힘들었다. 이를 해결하기 위해 HTML 코드를 분석해 주는 HTML Parser를 사용할 수 있는데, 가장 유명한 것이 BeautifulSoup4이다. BeautifulSoup4 설치 %pip install bs4 requests 모듈로 데이터 받기 # www.example.com 사이트를 요청한 후 응답 받아보기 import requests res = requests.get("https://www.example.com") res.text bs4 선언 및 사용 ..
동적 계획법(Dynamic Programming, DP)이란?동적 계획법이란 하나의 큰 문제를 여러 개의 작은 부문제로 나누고, 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용하는 기법이다.동적 계획법 vs 재귀적 호출재귀적 호출일반적인 재귀 방식은 동적 계획법과 매우 유사하다. 단, 재귀를 사용 시 동일한 작은 문제가 여러 번 반복되어 비효율적인 계산이 이루어진다는 것이다. 예를 들어 피보나치 수열을 살펴보자. 각 항을 구하기 위해 f(1), f(0)이 등장할 때까지 계속해서 반환하고, 더하는 작업을 진행한다. 또한 값을 따로 저장해두지 않기 때문에 이전에 구했던 값을 다시 처음부터 계산한다. 이러한 계산 방식 때문에 구하는 항이 증가함에 따라 계산 횟수가 기하급수적으로 늘어난다. 1, 1, 2..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr문제 이해이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조I 숫자 : 큐에 주어진 숫자 삽입D 1 : 큐에서 최댓값 삭제D -1 : 큐에서 최솟값 삭제연산 operations을 처리한 뒤 큐가 비어있으면 [0, 0], 비어있지 않으면 [최댓값, 최솟값] 반환빈 큐에 데이터를 삭제하라는 연산일 경우 해당 연산 무시풀이 (1)operations의 입력에 맞게 조건문을 작성하여 index, max, min, pop 메서드를 활용하여 해결시간 복잡도가 O(n)인 메소드들을 마구잡이로 섞어서 시간 초과가 나올 것이..
힙(Heap)이란?힙(Heap)이란 최댓값/최솟값을 빠르게 찾기 위해 고안되었으며, 루트 노드가 언제나 최댓값(최대 힙) 또는 최솟값(최소 힙)을 가지는 완전 이진트리(Complete Binary Tree)이다. 일반적인 리스트를 활용하여 최댓값/최솟값을 찾기 위한 max()/min() 함수의 시간 복잡도는 O(n)이다. 그러나 힙을 사용하면 O(log n)으로 수행이 가능하며, 정렬도 O(n log n)의 빠른 속도로 가능하다. 연산에 대한 자세한 이해보다는 힙에 대한 개념과 파이썬에서 활용할 수 있는 방법을 이해하는 것을 목표로 한다. 완전 이진 트리(Complete Binary Tree)마지막 레벨(Level)을 제외한 모든 레벨은 완전히 채워져 있는 이진트리이다. 삽입 연산을 수행할 경우 마지막 ..