본문 바로가기

동적 계획법 1

[백준/C언어] 1463번 - 1로 만들기 백준 웹사이트 "1463번 - 1로 만들기" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 소스 코드 #include int min(int a, int b); int main(void){ int N; scanf("%d", &N); int num[N+1]; //num[n]: n을 1로 만드는 데 필요한 연산의 횟수 num[0]=0, num[1]=0; //printf("num[%d]: %d\nnum[%d]: %d\n", 0, num[0], 1, num[1]); for(int i=2; i 더보기
[백준/C언어] 2579번 - 계단 오르기 백준 웹사이트 "2579번 - 계단 오르기" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 소스 코드 #include int max(int a, int b); int main(void){ int N; //계단 수 scanf("%d", &N); int stairs[N]; for(int i=0; i 더보기
[백준/C언어] 1932번 - 정수 삼각형 백준 웹사이트 "1932번 - 정수 삼각형" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 1932번: 정수 삼각형 첫째 줄에 삼각형의 크기 n(1 ≤ n ≤ 500)이 주어지고, 둘째 줄부터 n+1번째 줄까지 정수 삼각형이 주어진다. www.acmicpc.net 소스 코드 #include int max(int a, int b); int main(void){ int n; scanf("%d", &n); int triangle[n][n]; //정수 삼각형: triangle[i][j] -> triangle[i+1][j] or triangle[i+1][j+1] for(int i=0; i 더보기
[백준/C언어] 1149번 - RGB거리 백준 웹사이트 "1149번 - RGB거리" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 소스 코드 #include int min(int a, int b); int main(void){ // color[n][i]: n+1번째 집을 i 색깔로 칠하는 비용 (i=0: 빨강, i=1: 초록, i=2: 파랑) // price[n][i]: n+1번째 집을 i 색깔로 칠할 때, 1~n까지 모든 집들을 칠하는 최소 비용 // pric.. 더보기
[백준/C언어] 9461번 - 파도반 수열 백준 웹사이트 "9461번 - 파도반 수열" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 9461번: 파도반 수열 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 www.acmicpc.net 소스 코드 #include int main(void){ int T; scanf("%d", &T); for(int i=0; i 더보기
[백준/C언어] 1904번 - 01타일 백준 웹사이트 "1904번 - 01타일" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이 www.acmicpc.net 소스 코드 #include int main(void){ int N; scanf("%d", &N); //visual studio에서는 스택 사이즈 때문에 큰 수에서 에러 int num[N]; //num[N-1] -> 길이가 N인 수열의 개수 num[0] = 1; if(N>1){ num[1] = 2; for(int i=2; i 더보기
[백준/C언어] 9184번 - 신나는 함수 실행 백준 웹사이트 "9184번 - 신나는 함수 실행" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net 소스 코드 #include void fill_w(); void w_abc(int a, int b, int c); //global paramaters int w[21][21][21]; int main(void){ fill_w(); while(1){ int a, b, c; scanf("%d %d %d", &a, &b, &c); if(a==-1 && b==.. 더보기
[백준/C언어] 1003번 - 피보나치 함수 백준 웹사이트 "1003번 - 피보나치 함수" 문제풀이입니다. 언어는 C언어입니다. (제출 언어: C99) 문제 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 소스 코드 #include void fibonacci(int N); int main(void){ int T; scanf("%d", &T); for(int i=0; i0 int fibo[N+1][2]; fibo[0][0] = 1; fibo[0][1] = 0; fibo[1][0] = 0; fibo[1][1] = 1; for(int i=2; i 더보기