본문 바로가기
728x90

Baekjoon/[Code.plus] 알고리즘 기초 1/269

[BOJ/백준] 1309 동물원 ● [문제번호 1309] 동물원 https://www.acmicpc.net/problem/1309 1309번: 동물원 첫째 줄에 우리의 크기 N(1≤N≤100,000)이 주어진다. www.acmicpc.net ● 알아야 할 것 : 다이나믹 프로그래밍 ● 풀이 과정 : 알듯 말듯 하게 고민하다가 구글링을 통해 힌트를 얻었다. : 왼쪽, 오른쪽 자리에다가 추가로 사자를 배치 안하는 열을 고려하여 만들면 된다. : DP 풀이과정 (Bottom - Up) 1. 테이블 정의하기 → index까지 사자를 배치하는 총 경우의 수를 저장한다. // dp[index][0] : index자리에 사자 배치X // dp[index][1] : index자리에 사자 왼쪽 배치 // dp[index][2] : index자리에 사자.. 2021. 8. 5.
[BOJ/백준] 1149 RGB거리 ● [문제번호 1149] RGB거리 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net ● 알아야 할 것 : 다이나믹 프로그래밍 ● 풀이 과정 : DP 풀이과정 (Bottom - Up) 1. 테이블 정의하기 dp[index][0] : RED를 칠한 index집까지 총 비용 dp[index][1] : GREEN를 칠한 index집까지 총 비용 dp[index][2] : BLUE를 칠한 index집까지 총 비용 2. 점화식 찾기 .. 2021. 8. 5.
[BOJ/백준] 15988 1, 2, 3 더하기 3 ● [문제번호 15988] 1, 2, 3 더하기 3 https://www.acmicpc.net/problem/15988 15988번: 1, 2, 3 더하기 3 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net ● 알아야 할 것 : 다이나믹 프로그래밍 ● 풀이 과정 : 기존 1, 2, 3 더하기 문제에서 크게 벗어나지 않았다. : DP 풀이과정 (Bottom - Up) 1. 테이블 정의하기 → 각 index의 값은 1, 2, 3의 합으로 나타내는 방법의 수 2. 점화식 찾기 → dp[index] = dp[index - 1] + dp[index - 2] + dp[index - 3] 3. 초기값 정하기 dp.. 2021. 8. 5.
[BOJ/백준] 2225 합분해 ● [문제번호 2225] 합분해 https://www.acmicpc.net/problem/2225 2225번: 합분해 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net ● 알아야 할 것 : 다이나믹 프로그래밍 ● 풀이 과정 : 풀이를 떠올리다가 중복조합으로 풀면 되겠다고 생각했으나 계산과정을 어떻게 해야할지 의문이어서 구글링했다가 다른 방법으로 풀어야한다는 것을 알았다. : DP 풀이과정 (Bottom - Up) 1. 테이블 정의하기 → dp[k][n] : k개의 정수를 합하여 n을 만들수 있는 경우의 수 2. 점화식 찾기 → dp[K][N] = dp[K - 1][0] + dp[K - 1][1] + ... dp[K - 1][N - 1] + dp[K - 1].. 2021. 7. 30.
728x90