Java 8

Java 2차원 맵 탐색을 위한 BFS

package first; import java.security.KeyPair; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; import java.lang.*; public class TwoDimensionDFS { static int MAX_COUNT = 101; static int DIRECTION = 4; static int[][] DirMatrix = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}}; static int ColumnCnt; static int RowCnt; static int cnt = 0; static int[][] Array = new int[MAX_COUNT][2];..

Java로 BFS 구현하기

Ex) BFS 출력하기 - vertaxCount(노드의 개수), edgeCount(간선의 개수), startVertax(시작 노드), targerVertax(목적지 노드)를 차례대로 입력 받는다. - 그 다음에는 엣지의 순서쌍을 차례대로 입력 받는다. - 방문 순서대로 list에 넣고 list에 출력한다. import java.util.*; public class BFS1 { static int vertaxCount; static int edgeCount; static int targetVertax; static int startVertax; static Queue queue = new LinkedList(); static ArrayList list = new ArrayList(); static bool..

Chapter 03. Two pointers, Sliding window

1. 두 배열 합치기 (two pointers algorithm) import java.util.*; public class Main { public static void main(String[] args){ Main T = new Main(); Scanner in = new Scanner(System.in); int n = in.nextInt(); int [] A = new int[n]; for(int i = 0 ;i < n; ++i){ A[i] = in.nextInt(); } int m = in.nextInt(); int [] B = new int[m]; for(int i= 0; i < m; ++i){ B[i] = in.nextInt(); } T.solution(A, B); return ; } pub..

Chapter 02. Array (1, 2차원 배열)

1. 큰 수 출력하기 import java.util.*; public class Main { public static void main(String[] args){ Main T = new Main(); Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int[] arr = new int[n]; for(int i = 0; i < n; ++i){ arr[i] = scan.nextInt(); } for(int x : T.solution(n, arr)){ System.out.print(x + " "); } } public ArrayList solution(int n, int[] arr) { ArrayList answer = new ArrayList(..

Chapter 01. String (문자열)

2. 대소문자 변환 import java.util.Scanner; public class Change { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str = scan.next(); System.out.println(solution(str)); } public static String solution(String str) { String answer = ""; for( char x : str.toCharArray()) { if ( Character.isLowerCase(x) ) { answer += Character.toUpperCase(x); }else { answer += Character..

트리, 이진 탐색 트리, 레드-블랙 트리

1. 트리 - 널리 이용되는 자료구조 중 하나 - 나무의 "계층적" 구조를 표현한다. Def) 노트(node): 실제로 저장하는 데이터 Def) 루트(root): 최상위에 위치한 데이터 Def) 리프(leaf): 마지막에 위치한 데이터들 - 부모와 자식 관계(부모는 언제나 하나, 자식은 없거나 여러개 가능) - 높이: 어떤 노드->리프 경로의 최대 길이 -> 부모 기준으로 아래 3개 있으면 높이가 3 - 깊이: 어떤 노드->루트 경로의 길이 -> 자식기준으로 위에 3개 있으면 깊이가 3 - 하위 트리(subtree): 어떤 노드 아래의 모든 것을 포함하는 트리 2. 트리의 용도 - 계층적 데이터를 표현 - 검색트리를 통해 검색 알고리즘 구현 가능 Ex) 트리의 저장법 public class Node{ p..

Java로 Stack 구현하기

Ex) interface IStackable0{ boolean empty(); int peek(); void pop(); void push(int nData); // int search(int nData); } public class StackPractice implements IStackable0{ private int [] mnArray; private int mnCapacity; private int mnTop; public StackPractice(int nCapacity) { mnArray = new int[nCapacity]; mnCapacity = nCapacity; mnTop = 0; } public boolean empty() { return (0 == mnTop); } public vo..

Chapter 10 날짜와 시간 & 형식화 date, time and formatting

1.날짜와 시간 1.1 Calendar 와 Date - Date -> Calendar(오래 쓰다가 바뀜) -> time - 실무에서는 아직 Calendar을 쓰기도 한다. - Calendar 클래스 -> 추상 클래스(인스턴스 생성 불가)이므로 getInstance() - (static)를 통해 구현된 객체를 얻어야 한다. - Calendar 클래스 - Date와 Calendar 간의 변환 -> Date의 메서드는 대부분 'deprecated-더 이상 사용을 권장하지 않음.'되었지만 여전히 사용한다. "하위 호환성" - 컴퓨터는 항상 시간을 정수로 저장한다. - clear(int field)는 Calendar 객체의 모든(특정) 필드를 초기화한다. -> 1970년 1월 1일 00:00:00 (EPOCH T..

Java/Java의 정석 2022.02.28