| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 29 | 30 | 31 |
- 자연어처리
- 분할정복
- 수학
- 구현
- 코사인유사도
- 깊이우선탐색
- Geocoding
- TF-IDF
- 너비우선탐색
- 지진대피소
- 그래프이론
- 그래프탐색
- geopy
- cosine
- 유클리드
- 전처리
- 유사도
- GroupBy
- 백준
- 공공데이터
- dp
- 비트마스킹
- NLP
- pandas
- 누적합
- 건축물대장정보
- 재귀
- 우선순위큐
- 그리디
- xmltodict
- Today
- Total
목록전체 글 (58)
정리용
https://www.acmicpc.net/problem/11727 11727번: 2×n 타일링 2 2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×17 직사각형을 채운 한가지 예이다. www.acmicpc.net 1. 코드 설명 n = int(input()) dp = [0]*(n+1) dp[0] = 1 dp[1] = 3 for i in range(n-2): dp[i+2] = dp[i]*2 + dp[i+1] print(dp[n-1] % 10_007) 2. 주의 사항 11726 타일링 1과 똑같은 문제이다 n = 5나 6정도 까지 직접 구해가며 규칙을 찾으면 코드 자체는 아주 쉽다
프로젝트를 진행하다보면 주소를 위경도로 나타내어 QGIS 등으로 이용해야하는 경우가 많이 있다. http://www.geocoding.co.kr/ 위와 같은 지오코딩 사이트를 이용해 수작업을 하거나 셀리니움을 이용하는 방법도 있지만 구글 스프레드 시트를 이용하면 쉽고 빠르게 변환할 수 있다. 1. 먼저 구글 드라이브를 들어가서 오른쪽 클릭을 하여 빈 스프레드 시트를 만들어준다. https://drive.google.com/drive Google Drive - 모든 파일을 한 곳에서 하나의 계정으로 모든 Google 서비스를 Google Drive로 이동하려면 로그인하세요. accounts.google.com 2. 부가기능 설치 탭에 들어가 Geocode by AWESOME TABL 을 검색하고 설치해준다..
https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 1. 코드설명 n,m=map(int,input().split()) arr = [list(map(int, input())) for _ in range(n)] dx = [-1, 0, 1, 0] dy = [0, -1, 0, 1] done = [[0] * m for _ in range(n)] done[0][0] = 1 # 시작점 = 0, 0 from collections import deque q = deque([(0, 0)]) whi..
https://www.acmicpc.net/problem/2193 1. 코드 n = int(input()) dp = [1]*(n) for i in range(2,n) : dp[i] = dp[i-1] + dp[i-2] print(dp[n-1]) n = 1 : [ 1 ] = 1 n = 2 : [ 10 ] = 1 n = 3 : [ 100, 101 ] = 2 n = 4 : [ 1000, 1010, 1001] = 3 n = 5 : [ 10000, 10101, 10010, 10001, 10100] = 5 .... n 을 계속 구해가다 보면 피보나치 수열과 똑같음을 알 수 있다. 2, 주의사항 너무 멀리 돌아가지 말자 앞선 문제들처럼 0으로 끝나는 경우와 1로 끝나는 경우를 따로 고려하여 규칙을 찾으려고 했으나 정답..
1. 코드 (실패) n= int(input()) dp = [[0]*9 for j in range(n+1)] dp[0] = [1]*9 for i in range(1,n) : for j in range(9): if j == 0 : dp[i][j] = dp[i-1][j-1] + i elif j == 8 : dp[i][j] = dp[i-1][j-1] else : dp[i][j] = dp[i-1][j-1] + dp[i-1][j+1] print(dp) print(dp[n-1]) print(sum(dp[n-1])%1000000000) 2. 주의사항 첫번째 자리를 기준으로 1~9으로 분류하여 규칙을 찾으려했으나 끝 자리 기준으로 0 의 규칙도 고려하여 규칙을 찾아야헀다 n = 5 까진 j==0 일떄 dp[i-1][j-..
https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 1. 코드 #import sys #input = sys.stdin.readline n=int(input()) dp = [0]*(n+2) lst=[0]*(n+2) for i in range(1,n+1): lst[i]=int(input()) dp[1] = lst[1] dp[2] = lst[1] + lst[2] #print(dp) for i in range( 3, n+1) : dp[i] = max(dp[..
https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 1. 코드 설명 1) 전형적인 dp 풀이 ( 0 행렬을 만들고 채워가는 방식 ) n = int(input()) lst = list(map(int, input().split())) dp = [0] * n dp[0] = lst[0] print(dp) for i in range(1, len(lst)): dp[i] = max(lst[i], dp[i-1] + lst[i]) print(dp) print(max(dp))..
https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 1. 코드 설명 n = int(input()) tri =[list(map(int, input().split())) for _ in range(n)] #tri = [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] #n=5 for i in range(1,n): for j in range(i+1): if j == 0: tri[i][j] = tri[i][j] + tri[i-1][j] #print('j == 0 ',tri) el..