분류 전체보기
-
[백준] 11048번 이동하기알고리즘 2022. 12. 18. 03:28
https://www.acmicpc.net/problem/11048 3방향 중 사탕을 최대로 먹을 수 있는 경우와 이전 위치의 사탕값을 더해서 점화식을 작성하면 풀리는 문제였다. 소스코드# 11048 : 이동하기 import sys input = sys.stdin.readline n, m = map(int, input().split()) maze = [list(map(int, input().rstrip().split())) for _ in range(n)] # dp 테이블 설정 dp = [[0] * (m + 1) for _ in range(n + 1)] for i in range(1, n + 1): for j in range(1, m + 1): # d[i - 1][j] : ↓ # d[i][j - 1] :..
-
[백준] 2293번 동전 1알고리즘 2022. 12. 18. 03:27
https://www.acmicpc.net/problem/2293 소스코드# 2293 : 동전 1 n, k = map(int, input().split()) coins = [int(input()) for _ in range(n)] # dp 테이블 초기화 dp = [0] * (k + 1) dp[0] = 1 for coin in coins: for i in range(k + 1): # 만들려고 하는 돈이 가지고 있는 화페단위보다 크거나 같을 경우 if i >= coin: # 이전 경우의 수에 현재 동전으로 만들 수 있는 경우의 수 더하기 dp[i] += dp[i - coin] print(dp[k]) 백준 9084번과 비슷한 문제였고, 실제로 동일한 코드로 풀린 문제이다. 그때도 구글링해서 풀었는데, 이번에도..
-
[CS] 데이터베이스 인덱스CS 2022. 12. 15. 00:05
데이터베이스 인덱스 인덱스인덱스사전적 정의 : 쉽게 찾아볼 수 있도록 일정한 순서에 따라 놓은 목록원하는 값을 빠르게 찾을 수 있다. 데이터베이스 인덱스데이터베이스 테이블에 대한 검색 성능을 향상시키는 자료 구조이며, WHERE 절 등을 통해 활용 데이터베이스 인덱스 특징인덱스는 항상 최신의 정렬상태를 유지인덱스도 하나의 데이터베이스 객체데이터베이스 크기의 약 10% 정도의 저장공간 필요 인덱스 알고리즘페이지 : 데이터가 저장되는 단위Full Table Scan : 순차적으로 처음부터 데이터 찾음특징순차적으로 접근접근 비용 감소사용되는 경우적용 가능한 인덱스가 없는 경우인덱스 처리 범위가 넓은 경우크기가 작은 테이블에 엑세스하는 경우 B-Tree트리 높이가 같음자식 노드를 2개 이상 가질 수 있음기본 데..
-
[백준] 1965번 상자넣기알고리즘 2022. 12. 12. 22:54
https://www.acmicpc.net/problem/1965 처음에 문제가 잘 이해가 안되서 구글링을 통해 다른 사람들의 풀이를 참고해서 풀었다. 이중 for문을 사용하여 현재 상자 위치에서 그 앞에 더 작은 상자가 있다면 그 상자를 현재 상자에 넣는 경우와 현재 dp 테이블 값 중 최댓값을 다시 dp 테이블에 넣는 식으로 풀면 된다. # 1965 : 상자 넣기 n = int(input()) box = list(map(int, input().split())) # dp 테이블 1로 초기화 d = [1] * 1001 for i in range(1, n): for j in range(i): # 현재 위치에서 더 작은 상자가 있을 시 if box[j] < box[i]: d[i] = max(d[i], d[j..
-
[백준] 9084번 동전알고리즘 2022. 12. 12. 22:54
https://www.acmicpc.net/problem/9084 이코테 다이나믹 프로그래밍의 효율적인 화페 구성 문제와 같은 줄 알고 동일하게 풀었으나 틀렸다,,다른 방법이 떠오르지 않아 결국 구글링을 하게 되었다. 틀린 코드t = int(input()) for _ in range(t): n = int(input()) money = list(map(int, input().split())) m = int(input()) # dp 테이블 초기화 d = [10001] * (m + 1) d[0] = 1 for i in range(n): for j in range(money[i], m + 1): d[j] = min(d[j], d[j - money[i]] + 1) print(d[m]) 만들려고 하는 돈이 가지고 ..
-
[백준] 14494번 다이나믹이 뭐예요?알고리즘 2022. 12. 11. 22:05
https://www.acmicpc.net/problem/14494 다이나나믹 프로그래밍으로 풀기 위해 점화식은 세웠는데, 초기값을 잘못 설정해서 답이 0이 나왔었다,,, 구글링을 통해 다른 사람들이 문제 푼 것을 참고하여 해결했다. # 11494 : 다이나믹이 뭐예요? import sys input = sys.stdin.readline n, m = map(int, input().rstrip().split()) # dp 테이블 초기화 d = [[0] * (m + 1) for _ in range(n + 1)] d[0][0] = 1 for i in range(1, n + 1): for j in range(1, m + 1): # d[i - 1][j] : ↓ # d[i][j - 1] : → # d[i - 1][..
-
[백준] 13301번 타일장식물알고리즘 2022. 12. 11. 22:05
https://www.acmicpc.net/problem/13301 피보나치 수열로 만드는 타일이라 점화식 세우는 것은 편했다. 직사각형 넓이는 이전항 + 현재항을 가로로, 현재항을 세로로 가정해서 식을 세웠다. # 13301 : 타일 장식물 n = int(input()) # dp 테이블 초기화 d = [0] * 81 d[1] = 1 d[2] = 1 for i in range(3, n + 1): # 피보나치 수열 점화식 d[i] = d[i - 1] + d[i - 2] # 직사각형 넓이 출력 print((d[n] + d[n] + d[n - 1]) * 2) Uploaded by Notion2Tistory v1.1.0
-
[백준] 2579번 계단 오르기알고리즘 2022. 12. 11. 03:57
https://www.acmicpc.net/problem/2579 다이나믹 프로그래밍으로 풀기 위해 점화식을 세우는 것이 힘들어 구글링을 통해 일부 해결하였다. i - 2 계단 밟는 경우와 i - 3 계단 밟는 경우로 나뉘는 것은 알았는데, 그 이후 코드를 어떻게 짜야할 지 감이 안와서 어려움을 겪었던 문제였다. 다이나믹 프로그래밍 문제들을 반복해서 풀면 조금 나아질 것 같다..! 계단 값 저장하는 리스트를 계속 n개로 저장해서 런타임 에러가 발생했었다 😭 # 2579 : 계단 오르기 import sys imput = sys.stdin.readline n = int(input()) # 계단 값 저장하는 리스트 n개로 저장하면 런타임에러(인덱스에러) 발생 stair = [0] * 301 for i in r..