본문 바로가기

자료구조6

[ 백준 2468 ] 안전영역 ‼️‼️코드가 너무 실용성이 없어서 조금 더 수정 할 예정 문제 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 안전한 영역이 최대로 몇 개가 만들어 지는 지를 조사하려고 한다. 이때, 문제를 간단하게 하기 위하여, 장마철에 내리는 비의 양에 따라 일정한 높이 이하의 모든 지점은 물에 잠긴다고 가정한다. 어떤 지역의 높이 정보는 행과 열의 크기가 각각 N인 2차원 배열 형태로 주어지며 배열의 각 원소는 해당 지점의 높이를 표시하는 자연수이다. 예를 들어, 다음은 N=5인 지역의 높이 정보이다. 이제 위와 같은 지역에 많은 비가 내려서 높이가 4 이하인 모든 지점이 물.. 2021. 2. 7.
[ JAVA ] Priority Queue ( 우선순위 큐 ) 총 정리 일반적인 자료구조의 큐는 FIFO ( First In First Out ) 선입선출 의 구조를 가지고 있습니다. 그러나 기존의 큐와는 다르게 우선순위 큐는 먼저 들어온 순서대로 나가는 것이 아니라 우선순위가 높은 엘리먼트가 먼저 나가는 구조를 가지고 있습니다. 기본적으로 힙 구조를 이용하여 구현하며 우선순위에 따라 최소 힙 / 최대 힙 으로 구현합니다. 내부 요소들은 힙 구조로 이진트리로 구성되어 있습니다. 삽입 시 -> 마지막 노드에 삽입 후 부모 노드와 비교하며 Swap 삭제 시 -> 우선순위가 가장 높은 루트 노드를 삭제 후 마지막 노드를 루트 노드에 올린 후 자식 노드들과 비교하며 Swap PriorityQueue 자료구조를 사용하기 전 import java.util.* 필수! import jav.. 2021. 2. 5.
[ 백준 1260 ] DFS와 BFS 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. 출력 첫째 줄에 DFS를 수행한 결과를, 그 다음 줄에는 BFS를 수행한 결과를 출력한다. V부터 방문된 점을 순서대로 출력하면 된다. .. 2021. 2. 4.
[ JAVA ] Stack 총 정리 자료구조의 큐와 비교되는 형태로 LIFO ( Last In First Out ) 후입선출 의 구조를 가지고 있습니다. 그래프의 DFS( 깊이우선탐색 )에 사용 재귀적 함수 호출 시 사용 Stack 자료구조를 사용하기 전 import java.util.* 필수! import java.util.*; Stack 선언 import java.util.*; Stack stack = new Stack(); //int형 스택 선언 Stack 값 삽입 Stack stack = new Stack(); // int형 스택 선언 stack.push(2); // stack에 2 추가 stack.push(4); // stack에 4 추가 stack.push(5); // stack에 5 추가 // 2, 4, 5 Stack 값 삭제.. 2021. 2. 2.
[ JAVA ] Queue 총 정리 자료구조의 스택과 항상 비교되는 형태로 FIFO ( First In First Out ) 선입선출의 특징을 가지고 있습니다. BFS ( 그래프 넓이 우선 탐색 ) 에서 사용 JAVA에서 Queue 자료구조를 사용하기 위해서는 import java.util.* 필수! import java.util.*; Queue 선언 Queue queue = new LinkedList(); // linkedlist를 이용하여 int형 queue 선언 // 물론 다른 타입의 queue도 선언 가능 Queue에 값 삽입 Queue queue = new LinkedList(); queue.add(1); // queue에 값 1 추가 queue.offer(3); // queue에 값 3 추가 // add와 offer를 사용하여 .. 2021. 1. 31.
목표 & 회차별 계획 이번 개별 학습 소동아리를 통하여 2-2학기 에 수강하였던 자료구조 설계 과목의 실습과제를 복습하고자 합니다 기존에 배웠었던 자바언어를 토대로 삼아 "자료구조" ," 윤성우의 열혈 자료구조" 를 주 교재로 삼아 참고 할 예정입니다. 1. 1/2 수 1주차 실습과제 복습 ( Graph )2주차 실습과제 복습 ( Graph )2. 1/3 목 3주차 실습과제 복습 ( Graph )4주차 실습과제 복습 ( Graph )3. 1/9 수5주차 실습과제 복습 ( Graph )4. 1/10 목6주차 실습과제 복습 ( Hashing )5. 1/16 수7주차 실습과제 복습 ( Hashing )6. 1/17 목8주차 실습과제 복습 ( AVL Tree )7. 1/23 수9주차 실습과제 복습 (.. 2019. 1. 2.