우주먼지
article thumbnail
자료구조의 특징

💡 자료 구조 여러 데이터들의 묶음을 저장하고 사용하는 방법을 정의한 것 자료의 집합, 각 원소들 사이의 관계가 논리적 정의된 일정한 규칙에 의하여 나열되며, 자료처리의 효율성을 위해 조직&체계적으로 구분하여 표현한 것 (알고리즘 테스트 시 자주 등장하는 Stack,Queue,Tree,Graph 등) 자료구조의 경계 조건 자료 구조가 비어있는 경우 자료 구조에 단 하나의 요소가 들어있을 때 자료 구조의 첫 번째 요소를 제거하거나 추가할 때 자료 구조의 마지막 요소를 제거하거나 추가할 때 자료 구조의 중간 부분을 처리할 때 학습 포인트 각 자료구조가 가진 특징 각 자료구조를 사용하기 적합한 상황 판단 다른 구조와의 차이점을 이해하기 위해 자료구조 내부 직접구현 구현 시, 동작원리 이해하기 자료구조를 배워야..

article thumbnail
Time Complexity & Greedy & Brute Force
Data Architect/Data Structure 2022. 9. 27. 11:04

⭐ 시간 복잡도 (Time Complexity) 보다 효율적인 방법 탐색 = 시간복잡도 탐색 문제를 해결하기 위한 알고리즘의 로직을 코드로 구현 시, 시간복잡도를 고려한다는건 무슨 의미일까? 입력값의 변화에 따라 연산을 실행할 때, 연산 횟수에 비해 시간이 얼만큼 걸리는가? 효율적인 알고리즘을 구현한다는 것 = 입력값이 커짐에 따라 증가하는 시간의 비율을 최소화한 알고리즘 구성 📌 시간 표기법 Big-O(빅-오) Big-Ω(빅-오메가) Big-θ(빅-세타) 위 3가지 표기법은 시간복잡도를 각각 최악,최선,중간(평균)의 경우에 대해 나타내는 방법임 📌 시간복잡도가 O(1) 인 경우 O(1)은 constant complexity라고 하며, 입력값이 증가하더라도 시간이 늘어나지 않음. 입력값의 크기와 관계없이..

article thumbnail
DFS & BFS
Data Architect/Data Structure 2022. 9. 26. 11:36

⭐ 깊이 우선 탐색 (DFS, Depth-First Search) 최대한 깊게 내려간 뒤, 더이상 깊이 갈 곳이 없을 경우 옆으로 이동 ↓ → 루트 노드에서 시작 - 다음 분기(Branch)로 넘어가기 전, 해당 분기를 완벽하게 탐색 모든 노드를 거치고자 할 때 사용하며, BFS보다 간단하며, 검색속드는 느림 Stack / 재귀함수로 구현 ⭐ 너비 우선 탐색 (BFS, Breadth-First Search) 최대한 넓게 이동한 다음, 더이상 갈 수 없을때 아래로 이동 → ↓ 루트 노드에서 시작 - 인접한 노드를 먼저 탐색하며, 멀리 떨어진 정점을 제일 나중에 방문하는 순회방법 주로 두 노드사이의 최단 경로를 찾고 싶을때 사용 Queue로 구현 📌 DFS / BFS의 시간복잡도 - 두 방식 모두 조건내의 ..

article thumbnail
Tree & Graph
Data Architect/Data Structure 2022. 9. 23. 08:48

⭐ Tree 그래프의 여러 구조 중 단방향 그래프의 한 구조 (비선형 구조) 데이터 타입을 Custom으로 정의하고, new 키워드를 통해 새로운 객체(인스턴스) 생성 가능하며 Method 사용 가능 📌 Tree 구조의 요소 Depth = root ~ leef node 까지의 depth 표현가능 / root(A) = 0 B,I = 1 C,F,J,M = 2 Level = root(A) = 1 B,I = 2 ... Height = leef node를 기준으로 root 까지 0 ~ 올라감 Sub Tree = Sub node 를 가지고 있으면 그 영역은 1개의 Sub Tree라고 봄 📌 Tree Method addChildNode(value): 입력받은 value를 Tree에 계층적으로 추가할 수 있어야 함 r..

article thumbnail
JSON_Recursive
Data Architect/Data Structure 2022. 9. 21. 06:46

⭐ JSON 데이터 교환을 위해 만들어진 객체 포맷 📌 전송 가능 조건 수신/발신자가 같은 프로그램 사용 문자열처럼 범용적으로 읽을 수 있어야함 타입 변환을 이용해 String 반환할 경우, 객체내용 포함 X 📌 JSON 기본 규칙 Aa 자바스크립트 객체 JSON 키 키는 따옴표 없이 사용 가능 반드시 " " 붙여야함 문자열 값 문자열 값을 어떤 형태의 따옴표 다 가능 반드시 " " 감싸야함 ※ JSON의 키 & 값 사이에 공백이 있어서는 안됨 ※ JSON Reference 📌 잘못된 예시 (Json 형식과 다른형태로 Java를 사용하지 않는 프로그램에서 정확한 데이터 파악 불가능) ⭐ 위의 문제를 해결하기 위한 방법은 JSON 형태로의 변환 & JSON을 객체의 형태로 변환 등이 있음 📌 발신 예시 (..

article thumbnail
Recursion
Data Architect/Data Structure 2022. 9. 20. 10:27

⭐ 재귀 recursion() 📌 장점 코드간결,수정용이 변수를 여러개 사용할 필요 X 📌 단점 코드의 흐름이 비직관적 메모리 과다사용 메소드 종료후 컨텍스트 스위칭 비용 발생 📌 사용조건 문제의 크기를 점점 작은 단위로 쪼개야함 재귀 호출이 종료되는 시점이 존재해야함 Base Case : 간단한 결과 반환 (탈출조건) Recursive Case : 자기 자신 호출 📌 수학적 정의 - n = 0일 경우, n! = 1 - n> 0일 경우, n! = n * (n-1)!

검색 태그