본문 바로가기

동적계획법3

[Programmers] 정수 삼각형(Python) / Dynamic Programming 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr # 14분 소요 사용 알고리즘 : Dynamic Programming(동적 계획법) (가장 아래 행-1) 행부터 가장 아래 행의 값들을 참고해 더 큰 값을 선택해 더하면서 현 위치 값을 갱신해 올라온다. 가장 상단 행까지 값을 모두 채우면 첫 값(triangle[0][0])을 리턴한다. 파이썬 코드는 다음과 같다. def solution(triangle): for r in range(len(triangle)-2, -1, -1): for c in range(r+1): triangle[r][c] += max(triangle[r+1][c], .. 2021. 5. 3.
[Programmers] 등굣길(Python) / Dynamic Programming 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 사용 알고리즘 : Dynamic Programming(동적 계획법) 맵의 크기보다 행 + 1, 열 + 1 크기만큼 크게 만든다. 시작 위치(1, 1)는 넘어가고, 물 웅덩이(-1) 표시된 부분은 0으로 바꿔줌. 이외의 위치별로 좌, 상 방향의 숫자들을 더하며 끝까지 채운다. 가장 오른쪽 하단의 값(A[n][m])을 주어진 값(100,000,000,007)으로 나눈 나머지를 리턴한다. 파이썬 코드는 다음과 같다. def solution(m, n, pud.. 2021. 5. 3.
[BOJ] 1149. RGB거리(Python) / DP www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 실버 1 문제라 간단한 DFS로 Brute Force(완전탐색)으로 풀릴 줄 알았는데, 47%에서 시간초과 나더라.. # 소요시간 20분 DFS 완전탐색으로 접근한 파이썬 코드는 다음과 같다.(47%에서 실패한 코드) from sys import stdin input = stdin.readline def dfs(depth, temp): global MIN if temp > MIN: # 가지.. 2021. 3. 17.