본문 바로가기
반응형

동적계획법4

프로그래머스 - 등굣길 / C++ 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 문제 풀이 [1][1]에서 [2][2]로 이동할 수 있는 경우의 수는 (오른쪽으로 이동 -> 아래로 이동), (아래로 이동 -> 오른쪽으로 이동)의 2가지이다. 따라서 점화식을 세워보면 이동할 수 있는 경우의 수는 i가 행, j가 열일 때 DP[i][j] = DP[i-1][j] + DP[i][j-1]로 누적되어 나간다. DP로 더해나갈 .. 2022. 3. 8.
프로그래머스 - 정수 삼각형 / C++ 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 문제 풀이 간단한 DP 문제이다. 그림에서는 삼각형이지만 실제 배열로 나타내면 [7] [3, 8] [8, 1, 0] [2, 7, 4, 4] [4, 5, 2, 6, 5] 의 형태이므로 조금 더 점화식을 세우기 쉽다. 누적 값에 현재 값을 더해나가며 DP 배열을 채워나간다 행을 i, 열을 j로 나타내면 [3, 8]에서 3에 더할 수 있는 값은 triangle[i-1][j]에 있는 7이고 8에 더할 수 있는 값은 triangle.. 2022. 3. 6.
프로그래머스 - N으로 표현 / C++ 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42895 코딩테스트 연습 - N으로 표현 programmers.co.kr 문제 풀이 N으로 표현할 수 있는 경우는 N 한 가지이다. 이를 DP[0]이라고 하면 DP[0] = { N }이다. N 2개로 표현할 수 있는 경우는 NN, (N+N, N-N, N*N, N/N) 이며 이를 DP[1]이라 하면 DP[1] = { NN, N+N, N-N, N*N, N/N } 이다. N 3개로 표현할 수 있는 경우는 NNN, (NN+N, NN-N, NN*N, NN/N), {(N+N)+N), (N+N)-N, (N+N)*N, (N+N)/N}, ... 이다. 이를 DP[2]라 하면 DP[2]는 DP[1]와 DP[0]의 사.. 2022. 3. 2.
BOJ 2579 - 계단 오르기 / C++ 문제 링크 : https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 문제 풀이 DP를 이용하여 푼다. 우선 1번 계단과 2번 계단의 최댓값은 모든 계단을 밟으면 되므로 그대로 초기화해준다. 3번 계단부터는 경우가 여러 개로 나뉘어진다. (1). 1번 계단 -> 3번 계단 (2). 2번 계단 -> 3번 계단 (1)번 경우에는 DP[1] + arr[3]이 될 것이고 (2)번 경우에는 arr[2] + arr[3]이 될 것이다. DP[2]에는 arr[1] + arr[2.. 2022. 2. 28.
반응형