본문 바로가기
728x90
반응형

Dynamic Programming16

2022.02.08 [백준] C# 가장 긴 증가하는 부분 수열 https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 풀이 이 문제는 이중 for문을 이용하여 num[i]가 num[j](i>j)보다 크면 cnt 값을 비교하여 크면 max값에 cnt[j]값 대입하는 형식으로 해결했습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 .. 2022. 2. 8.
2022.02.08 [백준] C# 포도주 시식 https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 풀이 이 문제의 경우의 수는 1. n-1번째 잔을 마시지 않은 경우 2. n-2번째 잔을 마시지 않은 경우 3. n번째 잔을 마시지 않은 경우 총 3가지의 경우의 수가 있다. 1, 2 의 경우의 수는 바로 생각이 나서 코드를 작성했지만 바로 틀렸다는 결과를 받았고, for문을 돌릴 때, i번째 잔은 무조건 마신다는 생각을 당연하게 하고 있어서 엄청 시도했지만 모두 실패했다. 그래서 구글링을 하다가 .. 2022. 2. 8.
2022.02.07 [백준] C# 쉬운 계단 수 https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 풀이 이 문제는 이전의 숫자에 따라 갯수가 달라진다. 이전의 마지막 숫자가 0이면 다음에는 1만 나올 수 있고, 9도 마찬가지로 8만 나올 수 있다. 0, 9를 제외하면 1~8까지는 2개의 숫자가 나올 수 있다. 이 규칙을 코드로 옮기면 아래와 같다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 .. 2022. 2. 7.
2022.02.07 [백준] C# 1로 만들기 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 풀이 다음 문제는 3가지 조건이 있다. 1. n이 3,2의 배수가 아닐때 2. n이 3의 배수 일 때 3. n이 2의 배수 일 때 다음 조건을 생각해 보면 우선 f(n)=f(n-1)+1 라고 f(n)을 정해놓고 if(n%3==0) f(n)=Math.Min(f(n),f(n/3)+1) if(n%2==0) f(n)=Math.Min(f(n),f(n/2)+1) 위 처럼 if문으로 각 조건에서 이전에 설정했던 f(n)과 3또는 2으로 나눴을 때의 값을 비교하면서 최소값을 선택하여 문제를 해결했다. 1 2 3 4 5 6 7.. 2022. 2. 7.
728x90
반응형