자기 공부

· Algorithm
- 알고리즘 분류 : 다이나믹 프로그래밍, Bottom-Up 방식 - 사용 언어 : JAVA - 문제 요점 피보나치 함수에 대해 이해가 필요 주어진 테스트 케이스 중 가장 MAX 값 까지 확인 필자는 2차원 배열을 이용해 0과 1을 구분 - 점화식 도출 d[i][0] = d[i-1][0] + d[i-2][0]; d[i][1] = d[i-1][1] + d[i-2][1]; 소스 설명은 주석을 참고해주세요. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException{..
· Algorithm
이 포스팅에서 작성하는 내용은 이것이 취업을 위한 코딩테스트다 (나동빈 지음) 에서 발췌하였습니다. 1. 최단 경로(Shortest Path) - 말 그대로 가장 짧은 경로를 찾는 알고리즘. - 최단 경로 문제는 보통 그래프를 이용해 표현하며, 각 지점은 노드로 표현되고 지점 간 연결된 도로는 간선으로 표현 - 코딩테스트에서는 다익스트라 최단 경로와 플로이드 워셜 알고리즘 유형이 자주 등장 2. 다익스트라(Dijkstra) 최단 경로 알고리즘 - 그래프에서 여러 노드가 있을 때, 특정한 노드에서 출발하여 다른 노드로 가는 각각의 최단 경로를 구하는 알고리즘. - 이 알고리즘은 '음의 간선'(0보다 작은 값을 가지는 간선)이 없을 때 정상적으로 동작하며, 현실 세계 또한 음의 간선으로 표현되지 않아 GPS..
· Algorithm
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int T = Integer.parseInt(br.readLine()); // 테스트 케이스 배열 int[] arr = new int[T]; int max = 0; for(int i=0;i
· Algorithm
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.StringTokenizer; // Meeting Class 선언 class Meeting implements Comparable{ int start; int end; public Meeting(int start, int end) { this.start = start; this.end = end; } // Sort에 사용할 기준 설정 @Override public int compareTo(Meeting m) ..
· Algorithm
이 포스팅에서 작성하는 내용은 이것이 취업을 위한 코딩테스트다 (나동빈 지음) 에서 발췌하였습니다. 기본 문제 1. 위에서 아래로 해결 방법 : JAVA 기본 라이브러리를 이용 public class Main { public static void main(String[] args) throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num = Integer.parseInt(br.readLine()); int[] arr = new int[num]; for(int i=0;i
· Algorithm
이 포스팅에서 작성하는 내용은 이것이 취업을 위한 코딩테스트다 (나동빈 지음) 에서 발췌하였습니다. 탐색(Search) : 많은 양의 데이터 중에서 원하는 데이터를 찾는 과정 대표적인 탐색 알고리즘 : DFS / BFS 자료구조(Data Structure) : 데이터를 표현하고 관리하고 처리하기 위한 구조 삽입(Push) : 데이터 삽입 삭제(Pop) : 데이터 삭제 오버플로(Overflow) : 공간이 꽉 찼는데 삽입 연산을 하면 발생 언더플로(Underflow) : 공간에 데이터가 없는데 삭제 연산을 하면 발생 자료구조 스택(Stack) : FILO(First In Last Out)의 선입후출 구조. 즉, 데이터가 먼저 들어가면 가장 늦게 나오는 구조. import java.util.Stack; pu..
· Algorithm
// Don't place your source in a package import java.util.*; import java.lang.*; import java.io.*; // Please name your class Main class Main { public static void main (String[] args) throws java.lang.Exception { // TODO Auto-generated method stub // 시간 제한으로 인해 시간이 상당히 촉박하니 Scanner가 아닌 BufferedReader 및 StringTokenize 이 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Strin..
· Algorithm
import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub // 2~7은 6, 8~19는 12, 20~37는 18, 38~61은 24. // 즉, 6n만큼 증가되는 규칙을 가지고 있다. Scanner sc = new Scanner(System.in); int num = sc.nextInt(); // 입력받은 수가 1인 경우 1임. int result = 1; // 입력받은 수가 1이 아닌 경우에 if(num != 1) { int startNum = 2; int endNum; for(int i = 1;true;i++) { // 시작점도 포함이므로 1..
멍목
'자기 공부' 태그의 글 목록 (2 Page)