알고리즘 챌린지 55

패스트캠퍼스 챌린지 5일차

알고리즘 복잡도 표현 방법 1. 알고리즘 복잡도 계산이 필요한 이유 - 다양한 알고리즘 중 어느 알고리즘이 더 좋은지 분석하기 위해, 복잡도를 정의하고 계산 2. 계산항목 1. 시간 복잡도 : 알고리즘 실행 속도 * 2. 공간 복잡도 : 알고리즘이 사용하는 메모리 사이즈 프로그래밍에서 시간 복잡도에 가장 영향을 많이 미치는 요소는 반복문이다. 알고리즘 성능 표기법 • Big O (빅-오) 표기법 : 0(N) - 알고리즘 최악의 실행 시간을 표기 - 가장 많이 / 일반적으로 사용 - 최악의 실행 시간을 표기하는 이유는 최악의 상황에도 이정도 성능은 보장한다는 의미 • Ω (오메가) 표기법 : Ω(N) - 알고리즘 최상 실행시간 표기 • Θ (세타) 표기법 : Θ(N) - 알고리즘 평균 실행시간 표기 3. ..

패스트캠퍼스 챌린지 4일차

더블 링크드 리스트 (Doubly linked list) - 이중 연결 리스트라고도함 - 양방향으로 연결되어 있어서 노트 탐색이 양쪽으로 모두 가능 public class DoubleLinkedList{ public Node head = null; // 앞 참조 public Node tail = null; // 뒤 참조 public class Node{ T data; Node prev = null; Node next = null; } public Node(T data){ this.data = data; } public void addNode(T data){ if(this.head == null){ this.head = new Node(data); this.tail = this.head; }else{ No..

패스트캠퍼스 챌린지 3일차

스택 (Stack) • 데이터를 제한적으로 접근할 수 있는 구조 - 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 구조 - 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터 구조 - LIFO(Last-In, First-Out) 정책, 큐와 반대 • 주요기능 - push() : 데이터를 스택에 넣기 - pop() : 데이터를 스택에서 꺼내기 • 사용법 Stack stack = new Stack(); stack.push(값) stack.pop(값) 링크드 리스트(Linked List, 연결 리스트) - 떨어진 곳에 존재하는 데이터를 화살표로 연결해서 관리하는 데이터 구조 - 데이터와 다음데이터의 주소를 저장하는 공간을 같이 저장 - 중간에 있는 데이터를 삭제해도 포인터 (데이터주소)를 이용하여 찾아갈 수..

패스트캠퍼스 챌린지 2일차

자료구조 1. 구조 배열 (Array) // new 키워드를 사용해서, 배열을 미리 선언하고, 데이터를 넣을 수도 있다 Integer[] data_list = new Integer [10] data_list[0] = 1 // 직접 배열 데이터 선언 시 넣을 수도 있다. Integer data_list1[] = {5,4,3,2,1} Integer[] data_list 2 = {1,2,3,4,5} datalist_1[0] // 5 datalist_2[0] // 1 // 배열 내용 출력 Arrays.toString(배열) • List 와 ArrayList List는 인터페이스고, ArrayList 는 클래스이다 List list1 = new ArrayList // 인터페이스로 선언한 list1의 구현 클래스는..

패스트캠퍼스 챌린지 1일차

이번에 패스트캠퍼스에서 진행하는 100% 환급 챌린지를 통하여 언젠가는 해야지 하는 자료구조와 알고리즘에 대한 강의를 신청하게 되었다. 나는 약간 이렇게 환급이라는 강압적인 단어가 있을 때야 비로소 더 집중적으로 하는 것을 알기에 이 기회에 환급도 받고 계속 미루어 왔던 자료구조와 알고리즘에 대해 집중적으로 공부할 수 있는 계기가 되어 이 기회를 놓치지 않고 신청하였다 강의 이름은 한 번에 끝내는 코딩 테스트 369 Java 편 초격자 패키지 Online이라는 강의이며 자료구조 및 알고리즘을 오랜만에 보면서 기본부터 어려운 내용까지 한 번에 다루는 강의여서 신청하게 되었다. 1일 차에서는 우선 이 강의가 어떤 식으로 진행되는지에 대한 커리큘럼과 자료구조 및 알고리즘을 실행할 수 있는 환경 세팅을 설정하였..