자기개발

· Algorithm
- 알고리즘 분류 : DFS - 사용 언어 : JAVA - 문제 요점 - 아래 6가지의 경우의 수를 계산하여 DFS 방식으로 뻗어나가면 된다. - A에서 B or C / B에서 A or C / C에서 A or C 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.StringTokenizer; public class Main { static class History{ int A; int B; int C; public History(in..
· Algorithm
- 알고리즘 분류 : 그리디, 우선순위 큐 - 사용 언어 : JAVA 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { public static class Time implements Comparable{ int start; int end; public Time(int s, int e) { start = s; end = e; } // 정렬 기준 정의 @Overr..
· Algorithm
- 알고리즘 분류 : 다익스트라 - 사용 언어 : JAVA 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Arrays; import java.util.PriorityQueue; import java.util.StringTokenizer; public class Main { public static class Node implements Comparable{ int pos; long cost; public Node(int pos, long cost) { this.pos = p..
· BE/Java
이 포스팅에서 작성하는 내용은 EFFECTIVE JAVA(이펙티브자바) 에서 발췌하였습니다. 아이템 65. 리플렉션보다는 인터페이스를 사용하라 리플렉션 리플렉션 기능을 이용하면 프로그램에서 임의의 클래스에 접근할 수 있다. Class 객체가 주어지면 그 클래스의 생성자, 메서드, 필드에 해당하는 Constructor, Method, Field 인스턴스를 가져올 수 있고, 이 인스턴스들로 그 클래스의 멤버 이름, 필드 타입, 메서드 시그니처 등을 가져올 수 있다. Constructor, Method, Field 인스턴스를 이용해 실제 생성자, 메서드, 필드를 조작할 수 있다. 드물긴 하지만, 리플렉션은 런타임에 존재하지 않을 수도 있는 다른 클래스, 메서드, 필드와의 의존성을 관리할 때 적합하다. (외부 ..
· Algorithm
- 알고리즘 분류 : DFS, DP, 백트래킹 - 사용 언어 : JAVA - 문제 요점 - 시작지점부터 1로 카운트시작 - 백트래킹 사용 필수 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; // Link : https://www.acmicpc.net/problem/1103 public class Main { public static int N, M; public static char[][] map; public static int[][] dp; public static boolean[][] v..
· BE/Java
이 포스팅에서 작성하는 내용은 EFFECTIVE JAVA(이펙티브자바) 에서 발췌하였습니다. 아이템 56. 공개된 API 요소에는 항상 문서화 주석을 작성하라 좋은 API를 개발하기 위해서는 해당 API에 대한 문서도 잘 작성되어야 한다. 기본적으로 API 문서는 사람이 직접 작성하므로 코드가 변경되면 매번 같이 수정해줘야 하는데, 자바에서는 Javadoc이라는 유틸리티가 이 작업을 도와준다. Javadoc Javadoc은 프로그래머가 자바독 문서를 올바르게 작성했는 지 확인하는 기능을 제공한다. 자바 7에서는 명렬줄에서 -Xdoclint 스위치를 켜주면 이 기능이 활성화되고, 자바 8부터는 기본으로 작동한다. 소스코드 파일에서 문서화 주석이라는 특수한 형태로 기술된 설명을 추려 API 문서로 변환해준다..
· Algorithm
- 알고리즘 분류 : 문자열, 스택 - 사용 언어 : JAVA - 문제 요점 - 괄호의 특성과 같은 스택 사용(FILO) 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); /..
· BE/Java
이 포스팅에서 작성하는 내용은 EFFECTIVE JAVA(이펙티브자바) 에서 발췌하였습니다. 아이템 55. 옵셔널 반환은 신중히 하라 메서드가 특정 조건에서 값을 반환할 수 없을 때 처리하는 방법 ~ 자바 7 예외를 던지거나, (반환 타입이 객체 참조라면) null을 반환 예외는 진짜 예외적인 상황에서만 사용해야 하며 예외를 생성할 때는 스택 추적 전체를 캡처하므로 비용이 만만치 않다. null을 반환하면 이런 문제가 생기진 않지만, 별도의 null 처리 코드를 추가해야 한다. 자바 8 이후의 새로운 방법 : Optional Optional는 null 이 아닌 T 타입 참조를 하나 담거나, 혹은 아무것도 담지 않을 수 있다. 아무것도 담지 않은 Optional은 ‘비었다’ 라고 한다. 반대로 어떤 값을 ..
멍목
'자기개발' 태그의 글 목록