본문 바로가기

문자열6

KMP 문자열 탐색 알고리즘 KMP 문자열 탐색 알고리즘 글 안에서 단어를 빠르게 찾거나, 문자열을 전처리하여 우리가 원하는 정보를 추출하는 알고리즘은 여러 분야에서 활용이 가능하다. 대표적인 문자열 안에서 단어를 찾는 문자열 탐색 알고리즘으로는 라빈-카프 보이어-무어 KMP 알고리즘 등이 있으며, 문자열 안에서 여러 개의 단어를 동시에 찾는 방법으로 아호-코라식 알고리즘이 있다. 가장 간단한 문자열 탐색 문자열 안에서 특정 단어를 검색하는 가장 간단한 방법은 전부 하나하나 비교하는 것이다. 위처럼 원본 문자열의 맨 앞 문자부터 탐색을 시작하여, 탐색 문자열과 다른 문자가 발견되다면 두 번째 문자부터 다시 비교하는 과정을 계속 반복하는 아주 간단한 방법이다. 위처럼 탐색 문자열을 원본 문자열의 모든 부분에 대해서 비교하는 방식은 매.. 2024. 2. 19.
C# 문자열 정렬하기 문자열 정렬하기 알고리즘을 풀 거나한 몇몇 상황에서 문자열 정렬이 필요한데, 알아두면 유용하게 사용이 가능하다. 최근 알고리즘 문제에서 문자열 정렬만 하면 되는데 갑자기 버블 정렬을 하고 있는 나를 발견할 수 있었다. 우선 문자열을 정렬하기 위해서는 각각의 문자로 분리하여야 한다. char의 배열로 변환한 후에 정렬해준다. public static class StringExtensions { public static string Sort(this String input) { char[] chars = input.ToCharArray(); Array.Sort(chars); return new string(chars); } public static string SortDesc(this String input.. 2024. 1. 15.
C# Substring 복습하기 Substring(int32) 문자열에서 부분 문자열을 검색한다. 부분 문자열로 지정된 문자 위치에서 시작하고 문자열 끝까지 계속된다. public string Substring (int startIndex); 매개 변수 startIndex substring에 있는 0부터 시작하는 문자 위치 Substring(int32, int32) 문자열에서 부분 문자열을 검색한다. 부분 문자열은 지정된 문자 위치에서 시작하고 길이를 지정한다. public string Substring (int startIndex, int length); *이 메서드는 현재 instance 값을 수정하지 않고 startIndex length로 지정된 새 문자열을 반환합니다. 매개 변수 startIndex substring에 있는 0부.. 2023. 9. 20.
C# Linq - Enumerable.Join() Join()에 대해서 문자열 관련 코드를 보다 보면 보이는 Join() 메서드 하지만 가끔 보다 보니 매번 헷갈려서 인터넷에서 검색하게 된다. 이번에는 확실히 정리하고 기억해 보자. 함수 원형 public static string Join (string? separator, params string?[] value); 매개 변수 separator - String 구분 기호로 사용할 문자열입니다. value에 둘 이상의 요소가 있을 경우에만 separator가 반환된 문자열에 포함됩니다. value - String[] 연결할 요소가 포함된 배열입니다. 반환 String value 문자열로 구분된 seprator의 요소로 구성된 문자열이 반환됩니다. 예제 코드 class Program { static voi.. 2023. 4. 20.
C# 숫자 서식 지정자(Number Format Specifier) 표준 출력 형식의 문법 {n,w:tp} 예시 : {0,10:N2} 키워드 명칭 n 인자 Argument w 출력 범위 Width t 데이타 타입 Data Type p 정확도 Precision decimal val = 1234.5678M; string s = string.Format("{0,10:N2}", val); // 출력: " 1,234.57" Console.WriteLine(s); {0,10:N2} : 첫 번째 인자인 val을 받아서 전체 넓이 10으로 앞의 공백 포함 10자리 표현하고 N(Numberic) 형식으로 표현된다. 소수점 이하는 2자리까지 표시한다. 표준 숫자 서식 문자열 (Standard numeric format strings) static void Main(string[] args.. 2023. 2. 21.
C# 이스케이프 시퀀스(Escape sequence) 문자열 종류 " " : 따옴표 붙은 문자열 리터럴 (Quoted string literals) @" " : 축자 문자열 리터럴 (Verbatim string literals) """ """ : 원시 문자열 리터럴 (Raw string literals) *C# 11부터 사용 가능 // Initialize with a regular string literal. string oldPath = "c:\\Program Files\\Microsoft Visual Studio 8.0"; // Initialize with a verbatim string literal. // verbatim string is one that does not need to be escaped, like a filename string n.. 2023. 2. 14.