파이썬 썸네일형 리스트형 [BeautifulSoup/Selenium] BeautifulSoup, Selenium 기본 정리 BeautifulSoup - HTML Parser가 필요한 이유DOM(Document Object Model)웹 문서의 구조화된 표현으로, 프로그래밍 언어가 웹 페이지 내의 객체에 접근하고 조작할 수 있게 하는 인터페이스로 동작한다. 주로 자바스크립트에서 웹 페이지의 요소를 선택, 수정, 추가 또는 제거할 때 사용된다. 트리 모양처럼 생기기도 한 DOM은 각 노드를 객체 타입으로 여겨 문서 관리를 더욱 편리하게 한다.웹 브라우저는 DOM을 생성한 후 DOM Tree를 순회해서 특정 원소를 추가/삭제하거나(동적 프로그래밍), 쉽게 찾을 수 있다. 즉, DOM을 이용하면 웹 스크래핑/크롤링도 찾고자 하는 요소를 쉽게 찾을 수 있다. Python으로 HTML 문서를 파싱해서 분석하는 Parser가 있다면, D.. 더보기 [HTTP/Python] HTTP 통신, 웹 스크래핑/크롤링 기본 개념 정리 인터넷과 웹웹이 등장하기 까지의 과정:네트워크: 두 컴퓨터 간의 통신망LAN: 근거리 통신망 네트워크 Internet: 범지구적으로 연결된 네트워크WEB: 인터넷 상에서 정보를 교환하기 위한 시스템으로 개발됨 웹에서 정보를 주고받는 방법클라이언트(사용자)가 서버에 정보 요청 (= Request)서버에서 클라이언트 요청에 대한 처리 진행상황에 따른 응답 (응답코드를 리턴, ex) 2XX(성공), 4XX(클라이언트 에러), 5XX(서버 에러)) HTTP(Hypertext Transfer Protocol)의 구조HTTP는 웹 상에서 정보를 주고받기 위한 일종의 약속이다. 기본적으로, 클라이언트에서 서버로 정보를 요청하고(HTTP 요청(Request)) 요청된 정보에 대해 서버가 클라이언트에게 응답(HTTP 응.. 더보기 [코딩 테스트/Python] 코딩 테스트에서 자주 사용되는 Python 표준 라이브러리 코딩 테스트에서 자주 사용되는 알고리즘에는 해시(hash), 탐욕법(greedy), 정렬(sort), 동적 계획법(Dynamic Programming), 깊이 우선 탐색(DFS), 너비 우선 탐색(BFS) 등이 있다. 이 알고리즘들은 직접 구현할 수도 있지만, 그렇게 하기엔 코드도 너무 길어지고 시간이 오래 걸린다. 코딩 테스트에서 시간은 생각보다 여유 있지 않을 뿐더러, 각 알고리즘 별 직접 구현 코드를 늘 외우고 있기도 어렵다. 이럴 때 Python에서 제공하는 표준 라이브러리를 사용하면 각 알고리즘을 보다 쉽게 구현할 수 있다. 이 글에서는 각 알고리즘 별 표준 라이브러리를 사용해 구현하는 법을 간단히 정리하고자 한다. 1. 해시(hash)해시의 경우, 라이브러리를 따로 임포트하지 않고 기본 자료.. 더보기 [코딩테스트/Python] 프로그래머스 코딩테스트 - 사탕 담기 문제 설명 m 그램(gram)을 담을 수 있는 가방에 사탕을 가득 채우는 경우의 수를 구하려 합니다. 단, 같은 사탕은 또 넣을 수 없습니다. 가방이 감당할 수 있는 무게 m, 사탕별 무게가 담긴 배열 weights가 매개변수로 주어질 때, 가방을 정확히 m 그램으로 채우는 경우의 수를 return 하는 solution 함수를 작성해주세요. 제한 조건 m은 1,000 이상 100,000 이하인 자연수입니다. 모든 사탕의 무게는 10 이상 100,000 이하인 자연수입니다. weights의 길이는 3 이상 15 이하입니다.입출력 예 문제 풀이# itertools의 combinations 이용 (파이썬 기본 라이브러리)from itertools import combinationsdef solution(m, .. 더보기 [코딩테스트/Python] 프로그래머스 코딩테스트 - 운송 트럭 문제 설명 XX 회사는 트럭을 이용해 상품을 운반합니다. 트럭은 최대 무게가 한정되어있습니다. 직원은 트럭에 상품을 순서대로 실으며, 상품을 실을 수 없는 트럭은 바로 목적지로 출발합니다. 이때 우리는 모든 상품을 운반하는데 필요한 트럭은 최소 몇 대인지 구하려 합니다. 예를 들어, 각 상품의 스펙이 다음과 같고, 트럭의 허용 무게가 300, 실어야 할 상품이 ["toy", "snack", "snack"]라고 합니다. 상품 이름 무게 toy 70 snack 200 이 경우 첫째 상품과 둘째 상품은 같은 트럭에 들어가지만, 셋째 상품은 다른 트럭에 넣어야 합니다. 따라서 필요한 트럭 수는 두 대 입니다. 상품 누적 무게 새 트럭 toy 70 불필요 snack 270 불필요 snack 200 필요 트럭의 허.. 더보기 [코딩테스트/Python] 프로그래머스 코딩테스트 - 나머지 한 점 문제 설명 직사각형을 만드는 데 필요한 4개의 점 중 3개의 좌표가 주어질 때, 나머지 한 점의 좌표를 구하려고 합니다. 점 3개의 좌표가 들어있는 배열 v가 매개변수로 주어질 때, 직사각형을 만드는 데 필요한 나머지 한 점의 좌표를 return 하도록 solution 함수를 완성해주세요. 단, 직사각형의 각 변은 x축, y축에 평행하며, 반드시 직사각형을 만들 수 있는 경우만 입력으로 주어집니다. 제한사항 v는 세 점의 좌표가 들어있는 2차원 배열입니다. v의 각 원소는 점의 좌표를 나타내며, 좌표는 [x축 좌표, y축 좌표] 순으로 주어집니다. 좌표값은 1 이상 10억 이하의 자연수입니다. 직사각형을 만드는 데 필요한 나머지 한 점의 좌표를 [x축 좌표, y축 좌표] 순으로 담아 return 해주세요.. 더보기 [코딩테스트/Python] 프로그래머스 코딩테스트 - 기능 개발 문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자.. 더보기 [코딩테스트/Python] 코딩테스트 문제 유형 별 문제 풀이 방법 1. 해시(Hash) 대표 문제: 완주하지 못한 선수- 리스트가 숫자가 아닌 문자열일 경우 dict 자료형을 사용하는 것이 유용 (= 해시 자료구조 이용)- get()메서드를 이용해 해당 key값에 해당하는 value를 새로 추가하거나 업데이트 할 수 있음 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이.. 더보기 이전 1 2 3 4 5 ··· 10 다음