본문 바로가기

자료구조3

[스터디] 인프런 CS 전공지식 스터디 2기_자료구조와 알고리즘(1주차) 발자국 ~섹션2 유닛 8+강의 정리와 개인적인 지식, 의견 또한 포함되어 있습니다. 강의의 자세한 내용은 포함하지 않고 있습니다.  [섹션1 - 개요] 자료구조를 사용해야 하는 이유?더 나은 유지보수! (개인적인 의견으로 가장 중요한 개발 목표라고 생각) 알고리즘자료구조에 따라 알고리즘 달라짐.자료구조에 많은 영향! 프로젝트 시작 시 적절한 자료구조 선택, 사용 결정 후 그에 맞는 알고리즘으로 가공.  결국 유지보수를 염두에 둔다면 굉장히 중요한 사항들!  더 좋은 알고리즘이란?정답은 없다. 프로젝트의 목적에 따라 보통 속도/메모리 중 우선순위를 선택하게 됨 일반적으로 알고리즘은 속도를 성능의 척도로 사용 (시간 복잡도)→ 코딩테스트 시간 복잡도는 실제 디바이스의 실행 시간이 아닌 코드를 기준으로 실행시간 예측.. 2024. 10. 6.
[자료구조] 그래프 BFS(너비우선탐색) 그래프의 탐색 -길이우선탐색(DFS) : 자식까지 탐색 후 다른 형제 노드를 탐색 -너비우선탐색(BFS) : 자식 전에 모든 현재 노드를 탐색_Tree Node의 label 탐색과 같음 방문테이블과 Queue를 사용하여 탐색 C# using System; using System.Collections.Generic; using System.Text; namespace BFSpractice { class Program { static int[,] map = { { 0, 1, 1, 0, 0, 0, 0 }, { 1, 0, 0, 1, 1, 0, 0 }, { 1, 0, 0, 0, 0, 1, 1 }, { 0, 1, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 0, 0, 0 }, { 0, 0, 1, 0, 0.. 2023. 1. 30.
[자료구조] (이진)이분탐색 Binary Search 이분탐색이란? 배열에서 내부의 데이터들이 정렬되어 있을 때, 혹은 정렬할 수 있는 데이터들을 가질 때 특정한 수를 찾기 위한 방법 1) 배열의 중간값을 변수에 할당 2) 변수와 찾으려는 값을 비교 3) -1 변수가 더 크다면) 왼쪽의 데이터들의 중간값을 다시 변수에 할당 -2 변수가 더 작다면) 오른쪽의 데이터들의 중간값을 다시 변수에 할당 시간복잡도 데이터가 N개인 배열에서 최악의 경우에도 시간복잡도는 O(logN) (밑이 2) 코드 구현 C# using System; using System.IO; namespace BinarySearch { class Program { static void Main(string[] args) { StreamReader sr = new StreamReader(Conso.. 2023. 1. 30.