다이나믹 프로그래밍 71

백준(JAVA) 1149번 RGB거리 풀이

Java으로 구현한 1149번 RGB거리 문제 풀이입니다. https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(S..

백준(Python) 1149번 RGB거리 풀이

Python으로 구현한 1149번 RGB거리 문제 풀이입니다. https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net n = int(input()) data = [list(map(int, input().split())) for _ in range(n)] for i in range(1, n): data[i][0] = min(data[i-1][1], data[i-1][2]) + data[i][0] data[i][1] = min(dat..

백준(JAVA) 1003번 피보나치 함수 풀이

Java으로 구현한 1003번 피보나치 함수 문제 풀이입니다. https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net import java.util.*; import java.io.*; public class Main { static List zero = new ArrayList(); static List one = new ArrayList(); public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamRe..

백준(Python) 1003번 피보나치 함수 풀이

Python으로 구현한 1003번 피보나치 함수 문제 풀이입니다. https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net def fibo(num) : length = len(zero) if num >= length : for i in range(length, num + 1) : zero.append(zero[i-1] + zero[i-2]) one.append(one[i-1] + one[i-2]) print(zero[num], one[num]) t = int(input()) zero = [1, 0, 1] # 0일때 1개, 1일때 0개, 2일때 1개 ..

백준(Python) 17070번 파이프 옮기기 1 풀이

Python으로 구현한 17070번 파이프 옮기기 1 문제 풀이입니다. https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net n = int(input()) data = [list(map(int, input().split())) for _ in range(n)] # 0: 가로, 1: 세로, 2: 대각선 dp = [[[0] * n for _ in range(n)] for _ in range(3)] dp[0][0][1] = 1 #..

백준(JAVA) 2579번 계단 오르기 풀이

Java으로 구현한 2579번 계단 오르기 문제 풀이입니다. https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new..

백준(JAVA) 1912번 연속합 풀이

Java으로 구현한 1912번 연속합 문제 풀이입니다. https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new B..

백준(JAVA) 11054번 가장 긴 바이토닉 부분 수열 풀이

Python으로 구현한 11054번 가장 긴 바이토닉 부분 수열 문제 풀이입니다. https://www.acmicpc.net/problem/11054 11054번: 가장 긴 바이토닉 부분 수열 첫째 줄에 수열 A의 크기 N이 주어지고, 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ N ≤ 1,000, 1 ≤ Ai ≤ 1,000) www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { BufferedReader ..

백준(JAVA) 11722번 가장 긴 감소하는 부분 수열 풀이

Java으로 구현한 11722번 가장 긴 감소하는 부분 수열 문제 풀이입니다. https://www.acmicpc.net/problem/11722 11722번: 가장 긴 감소하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 감소하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 30, 10, 20, 20, 10} 인 경우에 가장 긴 감소하는 부분 수열은 A = {10, 30, 10, 20, 20, 10} www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main { public static void main(..

백준(JAVA) 11055번 가장 큰 증가 부분 수열 풀이

Java으로 구현한 11055번 가장 큰 증가 부분 수열 문제 풀이입니다. https://www.acmicpc.net/problem/11055 11055번: 가장 큰 증가 부분 수열 수열 A가 주어졌을 때, 그 수열의 증가 부분 수열 중에서 합이 가장 큰 것을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {1, 100, 2, 50, 60, 3, 5, 6, 7, 8} 인 경우에 합이 가장 큰 증가 부분 수 www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; public class Main { public static void main(String[] ar..