일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- spring
- 이젠 골드구현도 어렵네..
- PS
- 다익스트라
- 취득후기
- DFS
- 네트워크플로우
- GatherTown
- dp
- deque
- 재귀함수
- 백준
- 구현
- 01BFS
- QUICKSTARTGUIDE
- 백준코딩테스트
- 게더타운시작
- 시뮬레이션
- BFS
- COSPRO
- COSPROJAVA1급
- 세그먼트트리
- 완전탐색
- 우선순위큐
- java
- YBMCOS
- 엘라스틱서치
- 다이나믹프로그래밍
- 자바PS
- 알고리즘
- Today
- Total
목록분류 전체보기 (235)
공부공간
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/Y04pu/btqBBgltnJ1/MnbiJBQEHVxjwq9CLD0Rvk/img.png)
파이썬 버전 3.6 / beautifulsoup4 4.6.3 / requests 2.21.0 BeautifulSoup 은 http request로 얻어온 태그들을 유의미하게 파싱할수있는 라이브러리이다. 먼저 Requests 라이브러리는 특정 페이지에 html 정보를 string 형식으로 python으로 가져오는 기능을한다. 하지만 단순한 string에서 우리가 원하는 정보를 찾기 어렵기 때문에 BeautifulSoup을 이용한다. 예시를 통하여 알아보자. requests 라이브러리는 !pip install requests를 통하여 간단하게 설치할 수있다. 예시로 네이버 증권 페이지에 html을 requests안에 get 사용하여 가져와 본다면 이러한 형식으로 출력이 된다. ( requests.get(ur..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b1sLG8/btqBzjwFNUe/j2pDneybdgpVnHPmK85UC0/img.png)
https://www.acmicpc.net/problem/2798 2798번: 블랙잭 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버젼의 블랙잭에서 각 카드에는 양의 정수가 쓰여 있다. 그 다음, 딜러는 N장의 카드를 모두 숫자가 보이도록 바닥에 놓는다. 그런 후에 딜러는 숫자 M을 크게 www.acmicpc.net 주어진 카드중에서 3장을 뽑아서 주어진 숫자와 가장 가까운 경우의 수를 찾는 문제이다. 이런경우 그냥 3중 FOR문을 돌면서 모든 경우의 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/baZs1J/btqByHdsaQr/iaDxDRewf5xi3mGG3mWlF0/img.png)
https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어진다. 그리고 셋째 줄에는 부모 자식들 간의 관계의 개수 m이 주어진다. 넷째 줄부터는 부모 자식간의 관계를 나타내는 두 번호 x,y가 각 줄에 나온다. 이때 앞에 나오는 번호 x는 뒤에 나오는 정수 y의 부모 번호를 나타낸다. 각 사람의 부모는 최대 www.acmicpc.net 주어진 두 노드간에 촌수를 계산하는 기본적인 BFS문제이다. 나와 연결된 노드는 1촌의 관계를 가지며 주어진 두 노드간의 거리를 구하는 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cso0yM/btqBvuyXFRC/Ob0sDifa6RdALzj9KQQQI1/img.png)
얼마 전까지만해서 Silver I 이였다가 Gold V로 승격하였다. 앞으로 더 많이 풀어서 플래티넘까지 도달해야겠다..ㅎ_ㅎ
언어 처리나 머신러닝관련 토이프로젝트를 진행할 때에 웹에서 데이터를 가져와서 적절한 전처리를 통해 데이터 셋을 구현하곤한다. 이럴때에 사용하는 것이 웹크롤링 기술이다. 사실 웹크롤링관련 툴을 잘 다룬다고 해서 절대 아무 사이트나 막 크롤링을 하면안된다.. 어찌됐든 사이트의 데이터도 그 회사의 자산이니 내가필요하다고해서 무단으로 사용하면 곤란해질수 있다. 관련사항은 구글에 Robot.txt 라고 검색해보면 알수있다. 물론 아직 개인이 법적인 책임까지 간경우는 드물지만, 이점을 알고 사용하자. 이 포스트에서는 1) BeautifulSoup4를 이용한 정적인 사이트 크롤링 2 ) Selenium을 이용한 동적인 사이트 크롤링 을 다룰 것이다. 사실 매우 간단한 수준이라서 따라하면 금방 할 수있다. 둘의 차이는..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cceRcI/btqBtXO4et3/eRWJ8ZdhuatuYVd1uAGoi0/img.png)
https://www.acmicpc.net/problem/10164 10164번: 격자상의 경로 입력의 첫째 줄에는 격자의 행의 수와 열의 수를 나타내는 두 정수 N과 M(1 ≤ N, M ≤ 15), 그리고 ○로 표시된 칸의 번호를 나타내는 정수 K(K=0 또는 1 < K < N×M)가 차례로 주어지며, 각 값은 공백으로 구분된다. K의 값이 0인 경우도 있는데, 이는 ○로 표시된 칸이 없음을 의미한다. N과 M이 동시에 1인 경우는 없다. www.acmicpc.net 두가지 경우로 나누어 생각할 수있다. 격자상의 경로에서 중간점이 1)있는경우, 2)없는경우 없는 경우는 갈수있는 격자의 모든 경우의 수는 11111 12345 1361015 이런식으로 고등학교 수학에 나오는 방식으로 구할 수 있다. dp[..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cmKLWH/btqBxBjz2SD/3NolWPtKbQu5sMHk9mFAI1/img.png)
https://www.acmicpc.net/problem/1966 1966번: 프린터 큐 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 www.acmicpc.net 프린터에서 가중치를 부여하여 큐에 현재 가중치보다 높은 문서가 있는 경우 현재의 문서를 큐에 맨뒤로 보내는 작업을 반복하면서 내가 궁금..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/IO4Ad/btqByGdqsCJ/qgP5D1ACEdp1Z541Dn6i7K/img.png)
종이를 반씩 접으면서 튀어나온 부분은 1 들어간 부분은 0 으로한 배열을 리턴하는 문제이다. 어떻게 이런 문제를 낼 생각을 했을까.. 직접 접어봐도 되고, 여러 방법으로 규칙을 찾으면 n번째 배열은 n-1 + 0 + n-1(변형) 의 규칙이 있는 것을 알수있다. 뒤쪽 n-1에서 배열길이의 /2에 해당되는 위치의 값이 1로 바뀌는것을 알수있다. 파이썬으로 풀어달라는 x예찬님의 요청으로 파이썬으로 풀었다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 answer = [ [] for i in range(21)] visit = [False for i in range(21)] answer[1] = [0] answer[2] = [0,0,1] visit[1] = True ..