Queue 7

Chapter 02. 선형 자료구조

2.1 자료구조 소개 Def) 자료 구조(Data Structure): 자료를 효율적으로 관리하기 위한 구조 - 목적에 맞게 사용한 자료구조는 실행시간 단축이나 메모리 용량 절감 효과가 있다. - 선형 자료구조 / 비선형 자료구조 Note) 자료구조의 구현 - 추상 자료형(absract Data type, ADT) -> 자료 형태와 자료에 대한 연산을 정의한 것 -> 구체적인 구현 방법은 명시하지 않는다. (추상 클래스, 인터페이스) 2.2 배열 Note) 배열 - 데이터가 메모리 상에 연속적으로 저장된다 . - 데이터와 인덱스가 1:1 대응으로 구성된다. - 단점 -> 데이터 추가/ 삭제가 번거롭다. -> 미리 최대 길이를 정해서 생성한다. -> 가변 길이 배열은 배열의 크기를 변경할 때마다 새로운 배..

BFS 마법의 비료

/* 5 4 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 1 */ package first; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class MagiFertilizer0 { static int MAX_COUNT = 101; static int [][] AdjMatrix = new int[MAX_COUNT][MAX_COUNT]; static int [][] VisitMatrix = new int[MAX_COUNT][MAX_COUNT]; static int Width; static int Height; static int DIRECTION = 4; static int [..

Java로 BFS 구현하기

Ex) package first; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class BFSpractice0 { static int MAX_COUNT = 101; static int [][] AdjMatrix = new int [MAX_COUNT][MAX_COUNT]; static int[] VisitMatrix = new int[MAX_COUNT]; static int VertaxCount, EdgeCount; static Queue queue = new LinkedList(); public static void main(String[] args) { int StartV = 1; Scanne..

Chapter 05. Stack, Queue (자료구조)

1. 올바른 괄호 import java.util.*; public class Main { public static void main(String[] args){ Main T = new Main(); Scanner in=new Scanner(System.in); String str = in.next(); System.out.println(T.solution(str)); return ; } public String solution(String str){ String answer = "YES"; Stack stack = new Stack(); for(char x : str.toCharArray() ){ if(x == '(') stack.push(x); else{ if(stack.isEmpty()) return..

Part 08 Graph (그래프)

Note) 그래프 - 그래프는 비선형 자료구조이다. -> 노드와 엣지로 구성된다. -> 방향성과 가중치(weight)를 줄 수 있다. -> 자바에서는 그래프를 구성하는 노드와 엣지가 제공되지 않는다. -> 직접 노드와 엣지를 구성해서 그래프를 만든다. - 비선형 자료구조에서 원하는 데이터 찾기 1) 데이터 하나 읽기 2) 다음 번에 읽을 것을 예약 (연결된 데이터를 찾기) 3) 예약된 것을 하나 꺼내기 4) 2,3 반복 - 예약 목록을 스택, 큐에 따라 다르게 탐색할 수 있다. -> 큐 이용: 너비우선탐색 (BFS) -> 스택 이용: 깊이 이용 탐색 (DFS) -> 두 가지는 탐색 순서만 다르다. Ex) BFS - Queue를 이용해서 만든다. import java.util.*; // 방향성과 가중치가 ..

Part 05 Stack과 Queue

Note) list interface의 메서드 - list.remove(인덱스) : 꺼내서 제거 - pop() -> 인덱스 말고 데이터의 값을 제거하려면? ex) 데이터가 int일 때 => list.remove(Integer.valueOf(지우고 싶은 값)) 으로도 표현 가능 - list.get(인덱스): 꺼내서 보여준다. - peek() 1. Stack - LIFO구조 - push / pop / peek 2. Queue - FIFO구조 - offer / poll / peek 3. Deque - 앞이나 뒤에서도 꺼낼 수 있다. - 인터페이스로 제공 - offer(First / Last) / poll(First / Last) / peek(First / Last) Ex) 올바른 괄호 - 괄호가 올바르게 입력..

Chapter 11 컬렉션 프레임웍(Collection Framework)

1. 컬렉션 프레임웍 (Collection Framework) 컬렉션: 여러 객체(데이터)를 모아 놓은 것 프레임워 = 라이브러리(기능) + 프로그래밍 방식 프레임워크: 표준화, 정형화된 체계적인 프로그래밍 방식 컬렉션 프레임워크: 데이터 군을 저장하는 클래스들을 표준화한 설계 컬렉션(다수의 객체)을 다루기 위해 표준화된 프로그래밍 방식 컬렉션을 쉽고 편리하게 다룰 수 있는 다양한 클래스 제공 1.1 컬렉션 프레임웍의 핵심 인터페이스 List: 순서가 있는 데이터의 집합, 데이터 중복을 허용 Set: 순서를 유지하지 않는 데이터의 집합, 중복 허용하지 않는다. ex) HashSet, TreeSet Map: 키 - key(중복 허용하지 않는다.)와 값-value(중복 허용)이 쌍으로 이루어진 데이터의집합 ..

Java/Java의 정석 2022.03.02