[Python] Selenium 사용하는 법(feat. chromedriver 설치)
·
Python/웹 크롤링
0. Selenium 이란? 웹 크롤링을 하는 과정에서 로그인이 필요한 경우, 또는 해당 웹사이트가 프로그램을 통한 접근을 막은 경우, 동적으로 생성된 정보를 가져와야하는 경우 등 requests, beautifulsoup로는 페이지를 수집하는 것에 한계가 있다. 셀레니움(Selenium)은 이럴 때 브라우저를 조작할 수 있게 도와주는 라이브러리이다. 원래 Selenium은 웹 애플리케이션을 테스트하기 위한 목적으로 만들어진 포터블 프레임워크지만 웹 크롤링을 할 때 직접 브라우저를 자동 제어하는 것에 큰 도움이 되었기 때문에 웹 크롤링에 많이 쓰이게 되었다. 1. 셀레니움 라이브러리 설치 먼저 터미널을 이용해 셀레니움 라이브러리를 설치해주자. pip install selenium 주피터 노트북에서 앞에 ..
[자료구조] 우선순위 큐 Priority Queue
·
CS/자료구조
08 우선순위 큐 Priority Queue 출처 C언어로 쉽게 풀어쓴 자료구조(천인국, 공용해, 하상호 저) 목차 우선순위 큐의 개념 1-1. 우선순위 큐란 1-2. 우선순위 큐의 기능 1-2. 우선순위 큐의 표현방법 히프 2-1. 히프란? 2-2. 배열을 이용한 구현 2-3. 히프를 통한 구현 우선순위 큐 응용 3-1. 히프 정렬 3-2. 머신 스케줄링 3-3. 허프만 코드 1. 우선순위 큐의 개념 1-1. 우선순위 큐란? 우선순위 큐(Priority Queue)는 우선순위를 가진 항목들을 저장하는 큐로 FIFO(First In First Out) 순서가 이닌 순위가 높은 데이터가 먼저나가는 자료구조를 말한다. 스택 큐, 우선순위 큐 비교 자료구조 우선 삭제되는 요소 스택 가장 최근에 들어온 데이터 ..
[자료구조] 트리 Tree
·
CS/자료구조
07 트리 Tree 출처 C언어로 쉽게 풀어쓴 자료구조(천인국, 공용해, 하상호 저) 목차 트리의 개념 1-1. 트리란 1-2. 트리의 표현방법 트리의 종류 2-1. 이진 트리 2-2. 이진 탐색 트리 트리의 순회 3-1. 전위순회 3-2. 중위순회 3-3. 후위순회 트리의 구현 4-1. 이진 트리 구현 4-2. 이진 탐색 트리 구현 1. 트리의 개념 1-1. 트리란? 트리는 리스트, 스택, 큐와 같은 선형 자료 구조가 아닌 계층적인 특징을 가지고 있는 비선형 자료 구조이다. 트리라고 부르는 이유는 나무를 엎어놓은 것과 같은 모양새를 하고 있어 그 이름이 붙게 되었다. 트리를 이해하기 위해 필요한 용어 노드(node): 트리의 구성요소 간선(edge): 노드를 연결하는 선 루트(root): 부모가 없는 ..
[자료구조] 연결리스트 Linked List 2
·
CS/자료구조
06 연결리스트2 Linked List 목차 연결리스트 응용 1-1. 다항식 계산 1-2. 연결리스트 스택 1-3. 연결리스트 큐 원형 연결리스트 2-1. 원형 연결리스트란? 2-2. 원형 연결리스트 구현 이중 연결리스트 3-1. 이중 연결리스트란? 3-2. 이중 연결리스트구현 1. 연결리스트 응용 1-1. 다항식 계산 2개의 다항식을 더하는 덧셈 연산을 구현한다. 헤더노드를 통해 head부분과 tail부분을 따로 관리해 다항식 연산을 좀 더 효율적으로 할 수 있다. 코드 링크: 다항식 계산 1-2. 연결리스트 스택 링크드리스트로 스택을 구현했다. top을 이용해 스택을 관리한다. heap영역이 허용하는한 스택노드를 계속해서 생성할 수 있고, 노드를 이용한다는 점만 빼면 행렬구조체를 이용한 스택과 거의 ..
[프로그래머스][Python] Lv2. 메뉴 리뉴얼
·
Python/알고리즘 문제풀이
2021 KAKAO BLIND RECRUITMENT 문제풀러 바로가기👇👇👇👇👇👇 https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 문제 설명 위 문제는 단순 구현 문제로 조합(itertools.combinations)을 사용해 모든 메뉴의 경우 구한다. 그리고 collections.Counter 라이브러리를 이용해 가장 주문이 많았던 조합을 구해 코스요리에 추가하면 된다. 논리는 간단하다. 이 문제의 주의사항은 ..
[자료구조] 연결리스트 Linked List
·
CS/자료구조
05 연결리스트 Linked List 출처 C언어로 쉽게 풀어쓴 자료구조(천인국, 공용해, 하상호 저) 1. 연결리스트의 개념 1-1. 리스트란? 리스트는 자료를 정리하는 방법 중의 하나로, 할일 목록 등과 같은 것들을 관리할 때 쓰이는 자료구조이다. 리스트는 항목이 차례대로 저장되어 있으며, 각 항목들은 순서와 위치를 가지고 있다. 1-2. 연결리스트의 기능 리스트의 기능는 삽입, 삭제, 탐색 등의 연산을 수행할 수 있고, Node를 통해 연결된다. 리스트의 ADT는 아래와 같다. - 객체: n개의 element 형으로 구성된 순서가 있는 모임 - 연산 insert(list, pos, item) ::= pos 위치에 요소를 추가한다. insert_last(list, item) ::= 맨 끝에 요소를 추..