본문 바로가기
반응형

코딩테스트 준비/자료구조 & 알고리즘42

C# - Convert.ToInt32메서드로 진수 변환(2진수, 8진수, 16진수를 10진수로 ) Convert.ToInt32 메서드 문자열을 정수로 변환한다. public static int ToInt32(string? value, int fromBase); 매개변수 value : 변환할 문자열 null이면 안된다. fromBase : value의 진법을 나타낸다. 2,8,,1016진수 중 하나여야한다. 다른 값을 사용하면 ArgumnetException가 발생한다. 코드로 알아보자 01 16진수를 10진수 string num = "1A3"; int decimalFromHex = Convert.ToInt32(num, 16); Console.WriteLine($"10진수로 변환된 값 {decimalFromHex}"); 02 8진수를 10진수로 string num = "123"; int decimalF.. 2023. 11. 21.
C# - Convert.ToString 메서드로 진수 변환(10진수를 2진수, 8진수, 16진수로) Convert.ToString 메서드 정수,실수,날짜등 다양한 데이터 유형을 문자열로 변환한다. public static string ToString(int value, int toBase); 매개변수 value : 변환할 32비트 부호 있는 정수 toBase : 변환 값의 진수로서 2,8,10,16이어야 한다. 코드로 알아보자 01 10진수를 2진수 int num = 3313; string binaryNumber = Convert.ToString(num, 2); Console.WriteLine($"2진수로 변환된 값 {binaryNumber}"); 02 10진수를 8진수 int num = 3313; string octalNumber = Convert.ToString(num, 8); Console.Wri.. 2023. 11. 21.
C# - 배열 초기화 방법 2가지(for문,Enumerable.Repeat ) 배열을 -1로 초기화하는데 3가지 방법이 있다. 01 for루프 사용 int[] vs = new int[26]; for (int i = 0; i < vs.Length; i++) { vs[i] = -1; } 02 Enumerable.Repeat사용 Enumerable.Repeat LINQ라이브러리의 일부로 제공되는 메서드이다. 지정된 요소를 반복하고 생성하여 컬렉션을 만들어준다. public static IEnumerable Repeat(TResult element, int count); 매개변수 TResult : 생성할 요소의 유형 element : 반복해서 생성할 요소 count : 생성할 횟수 아래와 같이 한줄로 배열을 초기화할 수 있다. int[] vs = Enumerable.Repeat(-1, 2.. 2023. 10. 23.
C# - 수식의 표기법(전위, 중위, 후위) 전위 표기법(PreFix) 연산자가 먼저 나오고, 그 뒤에 해당 연산자가 적용될 때 피연산자가 나온다. 예 : +AB 중위 표기법(InFix) 일반적으로 사용되는 수학 표기법이다. 연산자가 피 연산자 사이에 위치하고 괄호를 통해 연산자의 우선순위를 표현한다. 예 : A+B 후위 표기법(PostFix) 연산자가 나중에 오고 그 전에 해당 연산자가 적용될 때 피연산자가 나온다. 연산자 우선순위가 명확하므로 괄호가 필요없다. 예 : AB+ 2023. 10. 20.
C# - 다이나믹 프로그래밍(DP) 다이나믹 프로그래밍 메모리를 적절히 사용하여 수행 시간 효율성을 향상 시키는 최적화 기법중 하나이다. 큰 문제를 작은 부분 문제로 나누어 해결하며 이미 계산된 작은 문제의 결과를 메모리에 저장(메모제이션)하여 중복 계산을 피하는 방식으로 동작한다. 메모제이션(Memoization)이란? 한 번 계산한 결과를 메모리 공간에 메모하는 기법이다. 같은 문제를 다시 호출하면 메모했던 결과를 그대로 가져온다. 값을 기록해 놓는다는 점에서 캐싱(Cahcing)이라고도 한다. 다이나믹 프로그래밍이기 위한 조건 2가지 1) 최적 부분 구조 : 큰 문제를 작은 문제로 나눌 수 있어야 한다. 2) 중복되는 부분 문제 : 동일한 작은 문제를 반복적으로 해결할 수 있어야 한다. 다이다닉 프로그래밍 크게 두 가지 구현 방식으로.. 2023. 10. 8.
C# - BFS(너비우선탐색)개념 및 코드 구현 너비우선탐색(BFS, Breadth-First Search) 시작 노드로부터 인접한 노드를 먼저 모두 방문한 후 그 인접한 노드들의 근처 노드들을 차례대로 방문하는 방식으로 동작한다. DFS같은 경우 많은 곳에 사용되지만 BFS같은 경우 최단거리에 많이 사용된다. 1. 행렬 01 그래프 행렬로 표현 int[,] adj = new int[10, 10] { {0,1,0,0,0,0,0,1,0,0 }, {1,0,1,0,1,0,0,0,0,0 }, {0,1,0,1,0,0,0,0,0,0 }, {0,0,1,0,0,0,0,0,0,0 }, {0,1,0,0,0,1,1,1,0,0 }, {0,0,0,0,1,0,0,0,0,0 }, {0,0,0,0,1,0,0,0,0,0 }, {1,0,0,0,1,0,0,0,1,0 }, {0,0,0,.. 2023. 9. 19.
반응형