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
- unity 병합
- nav오브젝트사이거리
- 유니티 머지
- M590
- NavMesh
- 유니티 해상도 설정
- 오브젝트 깜빡임
- m585
- 유니티 해상도 변경
- m585 수리
- 깃허브 데스크탑 병합
- networkbehaviourid
- Github DeskTop Merge
- unity git
- 유니티
- unity merge
- 유니티 브랜치 merge
- networkobject
- stateauthority
- Unity
- 유니티 합치기
- nav거리
- 깃허브 데스크탑 합치기
- networkobject.networkid
- 유니티 해상도
- m590 수리
- 몬스터
- githubdesktopmerge
Archives
- Today
- Total
집게사장의 꿈
백준 C# 1916 내려가기 본문
기존 완전탐색으로 진행하였으나.. 메모리 초과
최대 400만 바이트의 사용이 가능하기에, 모든 경우의 수를 배열에 저장하면 안된다...
접근
주어진 배열에서 최대[최소] 값을 선택하는 과정
선택은 현재 배열이 아닌 다음으로 입력된 배열이 기존에 있는 최적의 값에서 선택하는 것
입력된 순서대로 현재 배열[0]에서 다음 배열[1]의 값을 선택했을 경우에는
저장된 배열의 위치[0]에서 다음 수를 선택할 수 없는[2] 오류가 발생했다.
코드
internal class E1916_내려가기
{
static void Main(string[] args)
{
string[] input(StreamReader s) => s.ReadLine().Split();
using (StreamReader sr = new StreamReader(Console.OpenStandardInput()))
{
int iter = int.Parse(input(sr)[0]);
//저장
int[] Max = new int[3];
int[] Min = new int[3];
Max = Array.ConvertAll(input(sr), int.Parse);
Min = Max;
for (int i = 1; i < iter; i++)
{
int[] arr = Array.ConvertAll(input(sr), int.Parse);
int[] MAXA = new int[2] { Max[0], Max[1] };
int[] MAXC = new int[2] { Max[1], Max[2] };
Max = new int[] { arr[0] + MAXA.Max(), arr[1]+ Max.Max(), arr[2]+ MAXC.Max()};
int[] MINA = new int[2] { Min[0], Min[1] };
int[] MINC = new int[2] { Min[1], Min[2] };
Min = new int[] { arr[0] + MINA.Min(), arr[1]+Min.Min(), arr[2]+ MINC.Min()};
}
Console.WriteLine($"{Max.Max()} {Min.Min()}");
}
}
}
'기타 > C#' 카테고리의 다른 글
2의 보수 (0) | 2024.07.31 |
---|---|
LINQ 정렬 메서드 (3) | 2024.07.24 |
LINQ SelectMany 시퀀스 평면화 (0) | 2024.07.24 |
LINQ 집합 (0) | 2024.07.23 |
LINQ 집계함수 (0) | 2024.07.23 |