본문 바로가기

전체 글533

[자바] 인터페이스 (Interface) 인터페이스 (Interface) 여러 클래스들을 만들 때, 만들어야 될 필요한 기능들에 대해서 합의해놓은 규약, 또는 가이드라인 (즉 객체의 스펙을 지정​해준다) 실제 객체로 사용되진 않고 객체의 타입으로만 사용됨. 프로그램을 설계하고 유연한 프로그램을 만들기 위한 기법 '다형성'이라는 객체지향 프로그래밍 특징을 구현한 기법 ​ EX) 특정 클래스를 구현하는데 개발자 혼자 클래스를 다 개발할 때까지 기다리기는 너무 시간이 오래 걸림 해당 클래스에서 어떤 메소드를 구현할지 기능에 대해서 배포 배포받은 기능 설명을 보고 구현만 하면됨 ​ 문법 1. 인터페이스는 실제 객체 X 추상 메소드, 상수만을 가지고 있음 ​ 2. 인터페이스의 상수는 private 불가능 인터페이스는 외부로 공개하기 위해서 만들어지는 것.. 2020. 9. 15.
[자바] JRE, JDK JRE (Java Runtime Environment) JVM + 기타 API 클래스 자바 프로그램을 실행하는데 필요한 실행환경 제공 ​ JDK (Java Development Kit) JRE + 개발 도구 자바 프로그램 실행뿐만이 아니라 개발에 필요한 도구들도 함께 제공 2020. 9. 15.
[자료구조] 신장 트리, 최소 비용 신장 트리 신장 트리 (Spanning Tree) 신장(Spanning) : 모든 노드를 포함한다는 의미 트리의 일종이기 때문에 cycle이 없어야 한다. 기존 그래프가 가진 모든 노드를 순환 없이 서로 연결시킨 트리 트리 간선 : 신장 트리에 포함된 간선 비트리 간선: 신장 트리에 포함되지 않은 간선 ​ 최소 비용 신장 트리 (Minimum Cost Spanning Tree) 무향 가중 그래프의 신장 트리 중에서 가중치의 합이 최소인 신장 트리 최소 신장 트리 구하는 알고리즘 : Prim(프림), Kruskal(크루스칼) 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타.. 2020. 9. 15.
[자료구조] 그래프 (Graph) 그래프 (Graph) 노드(Node, Vertex), 간선 (Edge)의 집합 객체 사이의 연결 관계를 표현하는 자료구조 가장 표현력이 우수한 자료구조로, 현실세계의 다양한 문제를 효과적으로 모델링하는 목적 트리는 계층구조가 아닌 일반적인 관계는 나타낼 수 없다는 한계를 지님 ​ 그래프 종류 구분 종류 설명 간선의 방향성 무방향 그래프 방향X 방향 그래프 방향O 간선의 가중치 가중 그래프 간선에 가중치 할당 구조적 특징 완전 그래프 연결 가능한 최대 간선 수 가짐 부분 그래프 원래 그래프의 일부분 다중 그래프 중복된 간선 포함 ​ 1. 무방향 그래프 간선에 방향이 없는 그래프 노드 : V(A) = { A, B, C, D, E} 간선 : G(A) = {(A,B), (B, D), (C,D), (D,E), (.. 2020. 9. 15.