5주차 강의
알고리즘: 입력을 받아 원하는 출력을 생상하기 위한 절차
공간 복잡도: 입력 크기에 따라 필요한 저장 공간의 양을 측정
정렬 알고리즘
- 선택 정렬: 배열에서 최소값/최대값을 찾아 맨 앞/뒤와 교환하는 방법
- 시간 복잡도: O(n^2)
- 공간 복잡도: O(1)
- 삽입 정렬: 정렬되지 않은 부분에서 요소를 가져와 정렬된 부부에 적절한 위치에 삽입하는 방법
- 시간 복잡도: O(n^2)
- 공간 복잡도: O(1)
- 퀵 정렬: 피벗을 기준으로 작은 요소는 왼쪽, 큰 요소는 오른쪽으로 분할하고 재귀적으로 정렬
- 시간 복잡도: O(n^2)
- 공간 복잡도: O(n)
- 병합 정렬: 배열을 반으로 나누고, 각 부분을 재귀적으로 정렬한 후, 병합하는 방법
- 시간 복잡도: O(nlogn)
- 공간 복잡도: O(n)
Sort(): 배열이나 리스트의 요소 오름차순 정렬 메서드.
탐색 알고리즘: 주어진 데이터 집합에서 특정 항목을 찾는 방법
- 선형 탐색: 배열의 각 요소를 하나씩 차례대로 검사하여 원하는 항목 탐색
- 시간 복잡도: O(n)
- 이진 탐색: 정렬된 배열에서 중간 요소와 찾고자 하는 항목을 비교하여 대상이 중간 요소보다 작으면 왼쪽, 크면 오른쪽 탐색
- 시간 복잡도: O(logn)
그래프
- DFS: 루트에서 시작하여 가능한 한 깊이 들어가서 노드 탐색 -> 다음 노드 탐색
- 시간 복잡도: O(V+E) (V: 노드 수, E: 간선 수)
- BFS: 루트에서 시작하여 가까운 노드부터 방문 -> 다음 레벨 노드 방문
- 시간 복잡도: O(V+E)
C# 체크리스트 <메소드>
참조 매개변수
- 값이 아닌 참조로 전달되어 원본 변수의 값 변경 가능
- 매개변수 생성 시 ref 키워드를 통해 작성
출력 매개변수
- 메서드 내에서 값을 할당하여 변환
- out 키워드를 사용하여 작성
- 메서드 내에서 값을 반드시 할당해야 함
- 함수 호출 시 새 변수 생성하여 적용 가능
- 외부 변수의 경우 ref 처럼 변경사항이 원본에 할당
개인 과제
TryParse(): 변환 성공 시 true 반환, out 변수에 변환된 값 저장, 실패 시 false 반환하고 out 변수는 기본값 0 유지
TryGetValue(): Dictionary에서 특정 키를 찾고, 값이 있으면 꺼내옴.
- 키가 존재하면 true 반환하고 out에 해당 값 저장
- 키가 없으면 false 반환하고 out은 null 유지
File 클래스
- File.WriteAllText("파일", "내용"); // 파일 쓰기
- string content = File.ReadAllText("파일"); // 파일 읽기
- File.Exists("파일"); // 파일 존재 여부 확인
- File.Delete("파일"); // 파일이 존재하면 삭제
- File.Copy("파일", "새 파일", true); // 새 파일로 복사 true면 동일한 파일이 존재해도 덮어씀.
- File.Move("파일", "새 경로"); // 새 경로로 파일 이동