본문 바로가기

728x90
반응형

Major-

(863)
[프로그래머스] 1.SELECT 1. 모든 레코드 조회하기 -- 코드를 입력하세요 SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID; 2. 역순 정렬하기 -- 코드를 입력하세요 SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC; 3. 아픈 동물 찾기 -- 코드를 입력하세요 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION='Sick' ORDER BY ANIMAL_ID; 4. 어린 동물 찾기 -- 코드를 입력하세요 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION !='Aged' ORDER BY ANIMAL_ID; 5. 동물의 아..
[알고리즘] 4-2. 클래스 이진트리 1. Node Class protected static class Node { protected E data; protected Node left; protected Node right; public Node(E data) { this.data = data; left = null; right = null; } public String toString() { return data.toString(); } } 2. BinaryTree Class public class BinaryTree { protected static class Node { protected E data; protected Node left; protected Node right; public Node(E data) { this.data ..
[알고리즘] 4-1. 검색 트리 트리와 이진 트리 1. 트리 : 계층적 구조를 표현 [조직도, 디렉토리와 서브 디렉토리, 가계도] 루트 노드 : 맨 위의 노드 리프 노드 : 자식이 없는 노드 내부 노드 : 리프노드가 아닌 노드 노드 연결 선 : link, edge, branch 부 트리 : 노드와 그 노드의 자손으로 이루어진 트리 루트 노드를 제외한 모든 노드는 유일한 부모 노드를 갖는다. 부모-자식 관계와 조상-자손 관계 -> 부모 자식은 1촌, 조상 자손은 n촌 트리의 성질 1. 레벨은 1부터 시작한다. 2. 노드가 N개인 트리는 항상 N-1개의 링크를 갖는다. 3. 루트에서 어떤 노드로 가는 경로는 유일 4. 임의의 두 노드간의 경로도 유일 이진 트리의 성질 1. 각 노드가 최대 2개의 자식을 갖는다. 2. 각각의 자식 노드는 부..
[알고리즘] 3-5. 자바의 정렬 1. 기본 타입 int [] data = new int [capacity]; Arrays.sort(data); //int 배열이 모두 꽉 차있을 경우 Arrays.sort(data, 0, size); //int 배열이 size-1까지 size개만 있을 경우 2.객체의 문자열 정렬 String [] fruits = new String[] {"Pineapple", "Apple", "Oragne", "Banana"}; Arrays.sort(fruits); for(String name : fruits) System.out.println(name); 3.ArrayList의 문자열 정렬 List fruits = new ArrayList(); fruits.add("Pineapple"); fruits.add("Appl..
[알고리즘] 3-4. 분할 정복을 이용한 정렬 (3) 비교 정렬 1. 데이터 간 상대적 크기 관계를 이용해 정렬 2. 데이터 간 크기 관계가 정의되어 있을 경우 적용 가능 3. 버블정렬, 삽입정렬, 합병정렬, 퀵정렬, 힙정렬 논-비교 정렬 1. 정렬할 데이터에 대한 사전지식 이용 2. Bucket Sort (버킷 정렬) 3. Radix Sort (기수 정렬) 하한 1. 입력된 데이터 한번씩 보기 위해 O(n) 시간복잡도 필요 2. 합병정렬과 힙정렬 알고리즘 시간복잡도 : O(nlog2n) 3. O(nlog2n)이 가장 빠른 비교정렬 결정 트리 1. Leaf 노드 수 : n!개 2. 최악의 경우 시간복잡도 (트리의 높이) :height >=log2n!=O(nlog2n) 선형 시간 정렬 알고리즘 Counting Sort (세는 정렬) -> 배열의 각 정수의 개..
[알고리즘] 3-3. 분할 정복을 이용한 정렬 (2) 힙정렬 1. 최악의 경우 시간복잡도 : O(nlog2n) 2. sorts in place : 추가 배열 불필요 [공간 복잡도 이득] 3. 이진 힙 자료구조 이용 힙의 정의 힙 : 완전이진트리이면서 힙 속성 만족 [힙은 동일 데이터를 가진 서로 다른 힙이 존재 가능하며, 유일하지 않다] [최대 힙 : 부모는 자식보다 크거나 같다.] [최소 힙 : 부모는 자식보다 작거나 같다.] 전이진 트리 : 모든 레벨에 노드들이 꽉 차있는 형태 완전이진트리 : 마지막 레벨 제외하면 완전히 차있고, 마지막 레벨에 가장 오른쪽부터 연속된 노드가 비어있을수있음 힙의 표현 1. 일차원 배열로 표현 : A[1...n] 2. 루트 노드 : A[1] 3. A[i]의 부모 : A[i/2] 4. A[i]의 왼쪽 자식 : A[2i] 4...
[알고리즘] 3-2. 분할 정복을 이용한 정렬 분할 정복법 -> 작은 크기의 동일 문제로 분할 후 순환적으로 해결 -> 작은 문제의 해를 합쳐 원래 문제의 해를 구한다. 합병정렬 1. 데이터가 저장된 배열을 절반으로 나눈다 2. 각각을 순환적으로 정렬 3. 정렬된 두 개의 배열을 합쳐서 전체를 정렬 mergeSort(A[], p, r) { if (p
[알고리즘] 3-1. 기본 정렬 버블, 삽입, 선택 정렬 간단하지만, 느리다 퀵, 병합, 힙 정렬 빠르다 기수 정렬 (radix) O(N) 정렬 1. 최대 원소 찾기 2. 최대 원소와 맨 오른쪽 원소와 교환 3. 맨 오른쪽 원소 제외 4. 하나의 원소만 남을 때까지 반복 //선택정렬 selectionSort (A[], n) { for last

728x90
반응형