728x90
반응형

전체 글 147

[객체지향프로그래밍][Java] Set 심화 내용(HashSet, TreeSet)

Set HashSet HashSet은 인터페이스 Set의 구현 클래스 Enhanced for문 사용 가능 랜덤 위치에 원소가 저장되므로 입력한 순서에 상관없이 원소가 출력됨 Set는 원소 중복 허용 x Set 원소 중복 import java.util.*; class Point { int x, y; public Point(int x, int y) { this.x = x; this.y = y; } @Override public String toString() { return "Point(" + x + "," + y + ")"; } // @Override // public boolean equals(Object obj) { // Point p = (Point) obj; // if (x == p.x && y =..

[객체지향프로그래밍][Java] List 심화 내용(Iterator)

List Enhanced for문 사용 // list가 초기화 되어있다고 가정 for(String str: list) { System.out.println(str); } // 위쪽 코드와 같은 기능 for(Iterator i = list.Iterator; i.hasNext(); ) { System.out.println(str); } Interface Iterable 메소드 기능 Iterator iterator() 타입의 반복자 리턴 public interface ListIterator extends Iterator 메소드 기능 void add(E e) 리스트에 원소를 더함 boolean hasNext() 리스트 반복자가 가리킬 다음 원소가 있으면 true boolean hasPrevious() 리스트 ..

[객체지향프로그래밍][Java] 모듈과 패키지 개념 (Object, Wrapper, Integer, String, StringBuffer, StringTokenizer, Math, Calendar)

패키지 서로 관련된 클래스와 인터페이스의 컴파일 된 클래스 파일들을 하나의 디렉터리에 묶어 놓은 것 패키지 사용하기 import 사용 x - 소스 내에서 패키지 이름과 클래스 이름의 전체 경로명을 써주어야 함 java.util.Scanner import 사용 - 소스의 시작 부분에 사용하려는 패키지 명시(클래스만 명시) import java.util.Scanner; // 특정 클래스의 경로명만 포함 import java.util.*; // 패키지 내의 모든 클래스 포함 패키지 만들기 패키지 선언 package 패키지명; - 컴파일한 클래스 파일을 패키지명의 디렉터리에 저장하라는 명령 - 소스 파일의 첫 줄에 선언 - 클래스의 경로명은 "패키지명.클래스명" 디폴트 패키지와 패키지 특징 디폴트 패키지 - p..

[객체지향프로그래밍][Java] 인터페이스의 구성 요소 심화 내용

자바 인터페이스의 구성 요소 (취소선 부분 생략 가능) 상수 public static final int X = 10; int X; int X = 10;은 public static final int X = 10;이 생략된 형태로 X라는 상수를 정의한 것이지만, int X;는 변수를 선언하는 것으로 해석되기 때문에 컴파일 에러가 발생 메소드 public abstract (abstract public) 추상 메소드 함수 몸통 부분 없음 사용하려면 반드시 함수 몸체 구현 필요 public default (default public) 인터페이스 내에서 메소드 정의({ } 부분이 필요함, 정의 안하면 컴파일 에러) 인터페이스 상속하여 default 메소드 사용 가능 오버라이딩 가능 Interface A -> Int..

[자료구조] 탐색 (순차 탐색, 이원 탐색, 두 리스트 비교)

탐색 리스트: 하나 이상의 필드로 된 레코드의 집합 키(key): 레코드를 구분하기 위해서 사용되는 필드 순차 탐색 template int SeqSearch(E *a, const int n, const K &k) { // a[1:n]을 왼쪽에서 오른쪽으로 탐색 // a[i]의 키 값이 k와 같은 가장 작은 i를 반환, 없으면 0 반환 int i; for (i = 1; i n) return 0; // i값을 찾지 못한 경우 return i; // i값을 찾은 경우 } 시간복잡도 - O(n) 순차 탐색의 성능 향상(정렬된 리스트의 경우) SepSearch의 for 조건 부분을 i n을 i > n || a[i] != k로 변경 탐색이 실패할 때 성능 향상 이원 탐색(Binary Search) int Binar..

전공/자료구조 2023.05.30

[자료구조] 그래프 2 (신장 트리, Kruskal, Prim, Sollin 알고리즘, 그래프 최단경로, AOV 네트워크)

신장 트리(spanning tree) G의 간선들로만 구성되고 G의 모든 정점들이 포함된 트리 신장트리는 G의 최소 부분 그래프(간선의 수가 가장 적은 부분 그래프) G'로서 V(G') = V(G)이고 G'는 연결되어 있음 신장트리는 n-1개의 간선 가짐 최소 비용 신장 트리 최저의 비용을 갖는 신장트리 Kruskal, Prim, Sollin 알고리즘 사용 신장 트리의 제한 조건 그래프 내에 있는 간선들만을 사용 정확하게 n-1개의 간선만을 사용 사이클을 생성하는 간선을 사용 금지 Kruskal 알고리즘 한 번에 하니씩 T에 간선을 추가해 가면서 최소비용 신장트리 T를 구축 T에 포함될 간선을 비용의 크기 순으로 선택 이미 T에 포함된 간선들과 함께 사이클을 형성하지 않는 간선만을 T에 추가 G는 연결되..

전공/자료구조 2023.05.30

[자료구조] 그래프 1 (그래프 정의, 그래프 표현, 그래프 탐색)

그래프 정의 그래프 G: 2개의 집합 V, E로 구성 V: 공집합이 아닌 정점(vertex)의 유한집합 E: 간선(edges)이라고 하는 정점 쌍들의 집합 표기: G = (V, E) 그래프의 제약 사항 자기 간선 또는 자기 루프 없음 동일 간선의 중복 없음 무방향 그래프 간선을 나타내는 정점의 쌍에 순서 없음 (u, v) = (v, u) 방향 그래프 방향을 가지는 정점의 쌍 로 표시 ≠ 완전 그래프 n개의 정점과 n(n-1)/2개의 간선을 가진 그래프 그래프 G의 부분그래프(subgraph) v(G') ⊆ V(G) 이고 E(G') ⊆ E(G)인 그래프 G' (u, v)가 E(G)의 한 간선이라면 u와 v는 인접 간선 (u, v)는 정점 u와 v에 부속 정점 u로부터 정점 v까지의 경로 그래프 G에서 \(..

전공/자료구조 2023.05.30

[자료구조] 트리 2 (최대 히프, 이진 탐색 트리)

우선순위 큐 우선순위가 가장 높은(낮은) 원소르 먼저 삭제 임의의 우선순위를 가진 원소 삽입 가능 최대 우선순위 큐 template class MaxPQ { public: virtual ~MaxPQ() {} // 가상 소멸자 virtual bool IsEmpty() const = 0; // 우선순위 큐가 공백이면 true를 반환 virtual const T &Top() const = 0; // 최대 원소에 대한 참조를 반환 virtual void Push(const T &) = 0; // 우선순위 큐에 원소를 삽입 virtual void Pop() = 0; // 최대 우선순위를 가진 원소를 삭제 }; 표현 방법 - 최대 히프 최대 히프 최대(최소) 트리: 각 노드의 키 값이 그 자식의 키 값보다 작지(크..

전공/자료구조 2023.05.19

맥북에서 Auto GPT 설치 및 사용 방법

ChatGPT 애용자려면 한 번쯤 들어봤을 Auto-GPT를 맥북에서 설치 및 사용하는 방법에 대한 포스팅이다. 윈도우에서 사용하는 방법으로 설치하면 오류 발생 1. 파이썬 다운받기 파이썬을 다운받는다(버전 3.10 이상). 파이썬 공식 홈페이지 → https://www.python.org/ 이후 다운로드 폴더에서 응용 프로그램 폴더로 이동시킨다. 2. 비주얼 스튜디오 코드 다운받기 비주얼 스튜디오 코드를 다운받는다. https://code.visualstudio.com/ 이후 다운로드 폴더에서 응용 프로그램 폴더로 이동시킨다. 3. 소스 파일 다운받기 아래의 링크에 접속해 Source code(zip)을 다운받는다. 해당 파일을 원하는 위치에 저장한다. https://github.com/Signific..

IT 트랜드 2023.05.17

[자료구조] 트리 1 (트리 종류, 이진 트리 순회, 복사, 동일성 검사)

트리 하나 이상의 노드로 이루어진 유한 집합 - 하나의 루트 노드 - 나머지 노드들은 n(≥0) 개의 분리 집합 \(T_{1}, T_{2},..., T_{n}\)으로 분할 - \(T_{i}\): 루트의 서브트리 노드 한 정보 아이템 + 다른 노드로 뻗어진 가지 노드의 차수(degree) 노드의 서브트리 수 단말(리프) 노드 차수 = 0 비단말 노드 차수 ≠ 0 자식 노드 X의 서브트리의 루트 형제 부모가 같은 자식들 트리의 차수 노드의 차수의 최댓값 조상 루트까지의 경로상에 있는 모든 노드 레벨 루트 == 레벨1, 자식 레벨 == 부모 레벨 + 1 높이(깊이) 노드 레벨의 최댓값 트리의 리스트 표현 (A(B(E(K,L),F),C(G),D(H(M),I,J))) - 차수가 k인 트리에 대한 노드 구조 트리 ..

전공/자료구조 2023.05.12
728x90
반응형