Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- navigation
- 유니티 머지
- networkobject
- M590
- NavMesh
- 오브젝트 깜빡임
- networkobject.networkid
- m585 수리
- unity git
- githubdesktopmerge
- unity merge
- unity 병합
- 깃허브 데스크탑 병합
- 유니티 해상도 변경
- Unity
- networkbehaviourid
- 유니티 해상도
- nav오브젝트사이거리
- nav거리
- m590 수리
- stateauthority
- 유니티 해상도 설정
- Github DeskTop Merge
- 몬스터
- 유니티 합치기
- 유니티
- 유니티 브랜치 merge
- 깃허브 데스크탑 합치기
- m585
Archives
- Today
- Total
집게사장의 꿈
백준 C# LCS 9251 본문
해결법
LCS라는 문제에 대한 접근법이 배낭 무게과 연관된 알고리즘
완전탐색과 동시에 서로의 연관성을 판단하기 위해 이전 상위 값에 +1을 한 값을 취하면 됨
현재 배열이 위치한 곳의 숫자는 탐색된 배열 연속된 수의 최대 개수임
코드
using System.Collections.Generic;
using System.IO;
using System;
using System.Text;
using System.Linq;
namespace consoleapp1
{
internal class LCS9251
{
//다이나믹 프로그래밍
//연속성을 판단하기 위해 이전 값에 +1을 취함
static void Main(string[] args)
{
using (StreamReader sr = new StreamReader(Console.OpenStandardInput()))
{
string str1= sr.ReadLine();
string str2 = sr.ReadLine();
int[,] array = new int[str1.Length+1, str2.Length+1];
for(int i = 1; i <= str1.Length; i++)
{
for(int j = 1; j<= str2.Length; j++)
{
if (str1[i-1] == str2[j-1])
{
array[i, j] = array[i - 1, j - 1] + 1;
}
else
{
array[i, j] = Math.Max(array[i - 1, j], array[i, j - 1]);
}
}
}
//마지막 수는 제일 큰 수 밖에 될 수 없음.
Console.WriteLine(array[str1.Length, str2.Length]);
}
}
}
}
참고[매우 좋은 설명]
'기타 > 백준' 카테고리의 다른 글
백준 C# 10814 나이순 정렬 (0) | 2024.08.28 |
---|---|
백준 C# 평범한배낭 12865 (0) | 2024.08.15 |
백준 C# 1916 최소비용 구하기 (0) | 2024.08.10 |
백준 C# 9019 DSLR (0) | 2024.08.08 |
백준 C# 16928 뱀과 사다리 게임 (0) | 2024.08.04 |