반응형

전체 139

[Report] 프로젝트에서 문서 관리법!

회사를 다니면서 인프라쪽 관련해서 프로젝트를 할 수 있는 기회가 생겨서 참여를 하게되었습니다. 토이프로젝트가 처음은 아니지만 그래도 회사에서 기획도 잠깐하고 개발도 잠깐했던 사람으로써 두번 다시 같은 실수가 일어나지 않기를 바라며... 의사소통에 중간단계인 문서화를 통해 주먹구구식 프로젝트가 아닌 진행 상황을 팀원들과 공유하며 단계적으로 나아가는 프로젝트를 하면 진행하기로 팀원들에게 동의를 구했습니다!! 물론 여기에 작성하는 내용이 맞는 내용은 아니고 단계적으로 피드백 받고 수용해 나아가며 진행할 예정입니다!! 일단, 따로 기획자가 없음을 인지하고 읽어주시면 감사하겠습니다 첫번째!! WBS(Work Breakdown Structure) 업무 분업 구조 또는 작업 분해 구조를 작성하기로 했습니다. 저는 이..

[Data Structure] 비선형 - 힙(Heap)

#요약 우선순위 큐(Priority Queue)를 위해 만들어진 자료구조 ※ 우선순위 큐 (Priority Queue) : 우선순위의 개념을 큐에 도입한 자료구조 데이터들이 우선순위를 갖고 있으며 우선순위가 높은 순서대로 높은 데이터가 pop 되는 구조 이용사례 1. 시뮬레이션 시스템 2. 네트워크 트래픽 제어 3. 운영 체제 스케듈링 #구체적 설명 완전 이진 트리로 우선순위 큐를 위해 만들어진 구조 여러개의 데이터 중 Minum 과 Maximum을 빠르게 찾을 수 있다. 느슨한 정렬(반정렬) 상태를 유지 중복된 값을 허용한다 힙의 종류 최대 힙(Max Heap) 부모 노드의 키 값이 자식 노드의 키값보다 크거나 같은 완전 이진 트리 key(부모 노드) >= key(자식 노드) 최소 힙 (Min Heap..

[Data Structure] 비선형 - 이진 트리(Binary Tree)

#구체적인 설명 그래프의 일종 ➡️ 한 노드에서 시작해서 다른 정점(Edge)들을 순회하여 자신에게 돌아오는 순환이 없는 연결 그래프 부모 - 자식 관계로 정의가 가능 부모에서 자식으로 간선이 이어져 있는 방향성이 있는 그래프 용어 정리 노드: 트리를 구성하는 기본 원소 루트 노드: 트리에서 부모가 없는 최상위 노드, 트리의 시작점 부모 노드: 루트 노드 방향으로 직접 연결된 노드 자식 노드: 루트 노드 반대 방향으로 직접 연결된 노드 형제 노드: 같은 부모 노드를 갖는 노드 리프 노드: 루트 노드를 제외한 차수가 1인 정점 ➡️ 말단, 단말에 있는 노드 경로: 한 노드에서 다른 노드로 이르는 길 사이에 있는 노드들의 순서 길이: 출발 노드에서 도착 노드까지 거치는 간선(Edge)의 갯수 깊이: 류투 경..

[Data Structure] 선형 - 스택(Stack)

#요약 Stack은 "쌓다" 라는 어원을 갖고 있음 ➡️책상에 책을 쌓아두는것과 마찬가지인 구조 선형구조 나중에 입력된 데이터가 먼저 나오는 구조 ➡️ LIFO 구조로 저장 (큐)Queue와 반대되는 구조 #구체적 설명 나중에 입력된 데이터가 먼저 나오는 구조 ➡️ Last In First Out 삽입 연산 push 삭제 연산 pop 최근 데이터 top # 그림 #Use Case 웹브라우저 뒤로가기 crtl + z DFS시 활용 역순 문자열 만들기 후위 표기법 계산 괄호 검

[Data Structure] 선형 - 큐(Queue)

#요약 Queue는 "대기줄"이라는 어원을 갖고 있음 ➡️은행의 번호표와 마찬가지인 구조 선형구조 먼저 입력된 데이터가 먼저나오는 FIFO구조로 저장 스택(Stack)과의 반대 되는 구조 #구체적 설명 먼저들어온 데이터가 먼저 나가는 구조 ➡️First In First Out 데이터가 삭제될 위치를 Front/Head 데이터가 삽이되는 위치를 Rear/Tail 삽입: Enqueue 삭제: Dequeue Front/Head 확인 Peek # 그림

[Algorithm] 정렬 - 병합 정렬(Merge Sort)

#요약 현대 컴퓨터의 아버지 '존 폰 노이만'이 제안 분할 정복(Divid & Conquer)의 전략을 도입 문제를 작은 문제로 분리하고 각각 해결한 후에, 결과를 모아서 원래 문제를 해결하는 전략 순환 호출을 구현 리스트의 길이가 0 OR 1일때 이미 정렬된 것 정렬되지 않는 리스트들 절반으로 잘바 비슷한 크기의 두 부분 리스트로 나눔 ➡️ Divid 각 부분 리스트를 재귀적으로 병합 정렬을 이용해 정렬 ➡️ Conquer 두 부분 리스트를 다시 하나의 정렬된 리스트로 병합 ➡️ Combine #구체적 설명 하나의 데이터 배열을 균등하게 절반으로 나눈다. 나누어진 2개의 배열을 정렬한다. 분할: 입력 배열을 2개의 부분 배열로 분할한다. 정복: 부분 배열을 정렬한다. 부분 배열의 크기가 충분히 작지 않..

Algorithm/Concept 2023.11.14

[Algorithm] 정렬 - 삽입 정렬(Insertion Sort)

#요약 Target과 그 이전 데이터들과 비교하며 정렬한다. 소규모 데이터에 효율적이다. #구체적 설명 두번째 요소부터 시작하여 배열을 순회 현재 요소를 Target이라고 하고, Target 이전의 요소들과 비교 Target이 이전 요소보다 작으면, 이전 요소를 한 칸 뒤로 이동 이를 Target이 이전 요소들보다 크거나 같을 때까지 반복하고, Target을 적절한 위치에 삽입 모든 요소에 대해 위 과정을 반복 #알고리즘 #코드 작성 import java.util.Arrays; public class SortAlgorithm { static int[] arr = new int[]{7, 1, 3, 2, 4, 5, 6}; static int cnt = 0; public static void main(Stri..

Algorithm/Concept 2023.11.13

[Algorithm] 정렬 - 선택 정렬(Selection Sort)

# 요약 인간이 정렬하는 과정과 매우 비슷 데이터를 한번에 읽고 정렬 진 # 구체적 설명 주어진 데이터 리스트 중에 최솟값을 찾는다. 그 값을 맨 앞에 위치한 값과 교체한다. 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다. # 알고리즘 # 코드 작성 - JAVA import java.util.Arrays; public class SortAlgorithm { static int[] arr = new int[]{7, 1, 3, 2, 4, 5, 6}; static int cnt =0; public static void main(String[] args) { selectionSort(arr); System.out.println(Arrays.toString(arr)); } private static ..

Algorithm/Concept 2023.11.13

[Algorithm] 정렬 - 칵테일 정렬(Cocktail Sort)

# 요약 버블 정렬의 파생형 정렬 양방향 버블 정렬이 이루어진다. 마치 양쪽에서 흔드는것처럼 보여서 칵테일 혹은 쉐이커 정렬이라고 불린다. # 구체적 설명 홀수 번째 돌때는 앞부터, 짝수번째를 돌때는 뒤부터 훑는다. 제일 처음에 하나, 제일 뒤에하나, 다시 제일 앞에 하나를 정렬하면서 마치 정렬하는 과정이 앞뒤로 흔드는 것처럼 보인다. 1회전을 수행하고 나면 오름차순, 내림차순에 따라 자료가 정렬이 진행된다. # 알고리즘 # 코드 작성 - JAVA import java.util.Arrays; public class SortAlgorithm { static int[] arr = new int[]{7, 1, 3, 2, 4, 5, 6}; public static void main(String[] args) {..

Algorithm/Concept 2023.11.11

[Algorithm] 정렬 - 버블 정렬(Bubble Sort)

# 요약 서로 인접한 두원소를 검사하여 정렬하는 알고리즘 인접한 2개의 데이터를 비교하여 크기가 순서대로 되어있지 않으면 SWAP한다. 선택 정렬과 기본 개념이 유사 # 구체적 설명 버블 정렬은 1번째 데이터와 2번째 데이터, 2번째 데이터와 3번째 데이터, 3번째 데이터와 4번째 데이터를 비교한다. 즉, n과 n+1을 비교하며 조건에따라 SWAP을 진행한다.. 1회전을 수행하고 나면 오름차순, 내림차순에 따라 자료가 정렬이 진행된다. # 알고리즘 # 코드 작성 - JAVA import java.util.Arrays; public class sort_bubble { static int[] arr = new int[]{7, 1, 3, 2, 4, 5, 6}; //정렬 대상 public static void ..

Algorithm/Concept 2023.11.10
반응형