본문 바로가기

전체 글

Make Queue with 2 stack in Java import java.util.Stack; public class QueueByStack { public static void main(String[] args) { MyQueue queue = new MyQueue(); } static class MyQueue { Stack s1; Stack s2; public MyQueue() { s1 = new Stack(); s2 = new Stack(); } public void offer(int x) { s1.push(x); } public int poll() { if (s2.isEmpty()) { while (!s1.isEmpty()) { s2.push(s1.pop()); } } return s2.pop(); } public int peek() { if (s.. 더보기
Reverse Queue with Java import java.util.Queue; import java.util.Stack; public class ReverseQueue { public static void main(String[] args) { Queue q = new java.util.LinkedList(); q.offer(1); q.offer(2); q.offer(3); q.offer(4); q.offer(5); System.out.println(q); q = reverse(q); System.out.println(q); } public static Queue reverse(Queue q) { Stack stack = new Stack(); while(!q.isEmpty()) { stack.push(q.poll()); } while(!.. 더보기
Reverse Queue with Stack in Java import java.util.Queue; import java.util.Stack; public class ReverseQueue { public static void main(String[] args) { Queue q = new java.util.LinkedList(); q.offer(1); q.offer(2); q.offer(3); q.offer(4); q.offer(5); System.out.println(q); q = reverse(q); System.out.println(q); } public static Queue reverse(Queue q) { Stack stack = new Stack(); while(!q.isEmpty()) { stack.push(q.poll()); } while(!.. 더보기
BFS and DFS with Java BFS(Breadth-First Search, 너비 우선 탐색)와 DFS(Depth-First Search, 깊이 우선 탐색)는 그래프를 탐색하는 두 가지 기본적인 방법입니다. 너비 우선 탐색 (BFS) BFS는 그래프의 가장 가까운 노드부터 탐색하는 방식입니다. 즉, 시작 노드로부터 거리에 따라 순차적으로 탐색합니다. BFS는 큐(Queue)를 사용하여 구현합니다. 특징: 모든 노드를 방문할 때까지 각 노드를 거리 순으로 방문합니다. 사용 경우: 최단 경로를 찾거나, 그래프의 모든 노드를 방문하는 경우에 유용합니다. 깊이 우선 탐색 (DFS) DFS는 그래프의 노드를 깊이 우선으로 탐색하는 방식입니다. DFS는 스택(Stack) 또는 재귀 함수를 사용하여 구현합니다. 특징: 하나의 경로를 끝까지 탐색한.. 더보기
BFS and DFS with Java BFS(Breadth-First Search, 너비 우선 탐색)와 DFS(Depth-First Search, 깊이 우선 탐색)는 그래프를 탐색하는 두 가지 기본적인 방법입니다. 너비 우선 탐색 (BFS) BFS는 그래프의 가장 가까운 노드부터 탐색하는 방식입니다. 즉, 시작 노드로부터 거리에 따라 순차적으로 탐색합니다. BFS는 큐(Queue)를 사용하여 구현합니다. 특징: 모든 노드를 방문할 때까지 각 노드를 거리 순으로 방문합니다. 사용 경우: 최단 경로를 찾거나, 그래프의 모든 노드를 방문하는 경우에 유용합니다. 깊이 우선 탐색 (DFS) DFS는 그래프의 노드를 깊이 우선으로 탐색하는 방식입니다. DFS는 스택(Stack) 또는 재귀 함수를 사용하여 구현합니다. 특징: 하나의 경로를 끝까지 탐색한.. 더보기
DFS and BFS import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class GraphTest { static int n, m,v; //정점의 개수, 간선의 개수, 시작 정점을 나타내는 변수 static int[][] graph; //인접 행렬을 나타내는 graph 배열 static boolean[] visited; //정점의 방문 여부를 나타내는 visited 배열 public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); m = sc.nextInt(); v = sc.nextInt(); System.out.. 더보기
Spring Batch를 이용한 클러스터링과 분산 처리 설정 및 구현 방법 Spring Batch를 사용하여, 여러 서비스 인스턴스에서 클러스터링과 분산 처리를 구현하는 방법을 설명합니다. 클러스터링을 통해 여러 서비스 인스턴스가 동일한 배치 작업을 공유하고, 한 인스턴스에서 실패한 작업을 다른 인스턴스에서 이어받을 수 있습니다. 또한, 분산 처리를 통해 작업을 여러 서버에 분산시켜 처리 효율성을 높일 수 있습니다. 클러스터링과 분산 처리 Spring Batch는 자체적으로 클러스터링과 분산 처리를 지원합니다. Spring Batch가 필요한 메타데이터 테이블을 생성하고 관리합니다. 이는 여러 인스턴스에서 동일한 배치 작업을 안정적으로 실행할 수 있도록 도와줍니다. 실행 및 검증 애플리케이션을 여러 인스턴스에서 실행한 후, Spring Batch의 메타데이터 테이블(BATCH_.. 더보기
Quartz를 이용한 클러스터링 설정과 구현 방법 Spring Boot와 Quartz 스케줄러를 사용하여, 여러 서비스 인스턴스에서의 클러스터링을 구현하는 방법을 설명합니다. Quartz의 클러스터링 기능을 활성화하여, 여러 서비스 인스턴스가 동일한 작업 스케줄을 공유하고, 한 인스턴스에서 실패한 작업을 다른 인스턴스에서 이어받을 수 있도록 구성합니다. 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-quartz' application.properties 설정 application.properties 파일에 Quartz와 데이터베이스 관련 설정을 추가합니다. 이 설정은 Quartz가 클러스터링 모드로 작동하도록 구성하는 데 필요합니다. # 데이터베이스 설정 spring.dataso.. 더보기