기타 정보: 169개의 글
BSD, K&R 코딩 스타일 bsd와 k&r의 가장큰 차이는 중괄호( {} )의 위치입니다. 1. K&R 코딩 스타일 여는 블록을 조건에 한 줄로 같은 행에 배치합니다. 코드 줄 수를 절약하여 한눈에 많은 코드를 작성할 수 있습니다. BSD 스타일로 작성한 코드를 K&R 스타일로 동일하게 작성해 보겠습니다. if(조건){ 처리 로직 } 예시) if(d == 1){ if(b == 1){ 처리로직 }else{ 처리로직 } } 2. BSD 스타일 BSD는 줄간격이 한눈에 들어오지만 단점은 코드가 길어진다는 단점이 있습니다. if(조건) { 처리로직 } 예시) if(d == 1) { if(b == 1) { 처리로직 } else { 처리로직 } } 3. GNU 코딩 스타일 블록을 조건문 아래에 작성합니다. 블록이..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/r37Fv/btst6OJkrsr/qoYhdL8X0q5X6OWeoc62Q0/img.gif)
DFS (깊이 우선 탐색) 소개 Root Node 혹은 다른 임의의 노드에서 시작해서 다음 분기(Branch)로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방법이다. Stack과 재귀함수(Recursion)으로 구현한다. 경로를 탐색할 때 한 방향으로 갈 수 있을 때까지 계속 가다가 더 이상 갈 수 없게되면 다른 방향으로 다시 탐색을 진행 모든 노드를 방문하는 경우에 이 방법을 사용한다. 사용용도 경로찾기 u, v가 주어졌을 때 u -> v로 가는 경로를 찾을 때 그래프의 사이클을 찾을 때 back edge 즉, 순환을 만들어 주는 마지막 edge를 찾는다. 시간복잡도 두 가지의 자료구조(인접 리스트, 인접 행렬)로 구현할 수 있다. 인접 리스트 : O(V + E) 인접 행렬 : O(V^2) 접점(V)..
![](http://i1.daumcdn.net/thumb/C200x150/?fname=https://blog.kakaocdn.net/dn/bBt7Rk/btstY7J7ss0/NaVemGiNJDGKxMAvYEIJS1/img.gif)
BFS (너비 우선 검색) 정리 소개 Root Node 혹은 다른 임의의 노드에서 인접한 노드를 먼저 탐색하는 방법이다. Queue를 사용해서 구현한다. 시간 복잡도 인접 리스트 : O(V + E) 인접 행렬 : O(V^2) 접점(V), 간선(E) class Graph { private int V; private LinkedList adj[]; Graph(int v) { V = v; adj = new LinkedList[v]; for (int i=0; i
동적 계획법(Dynamic Programming) 정리 큰 문제를 작은 문제로 나눠서 푸는 알고리즘인데, 코딩테스트에서 자주 출제되는 알고리즘 기법입니다. DP 속성 Overlapping Subproblem (부분 문제가 겹친다.) Optimal Substructure (최적 부분 구조) Overlapping Subproblem 대표적인 예로 피보나치 수를 들 수 있다. Fn = Fn-1 + Fn-2 여기서 Fn을 큰 문제로 생각하고, 우측 항에 있는 Fn-1, Fn-2를 작은 문제로 나눈다고 생각하면 된다. Optimal Substructure 문제의 정답을 작은 문제의 정답을 합하는 것으로 구할 수 있다. 위의 예에서 작은 문제로 쪼갠 우측항의 Fn-1 + Fn-2로 큰 문제인 Fn의 값을 구할 수 ..
지난번 포스팅을 참조하면, 배열을 List로 변환할 때, Arrays.asList() 메소드를 사용하면 됩니다. 하지만, 배열의 원소가 int와 같은 primitive type인 경우 Arrays.asList()는 좀 다른 결과를 리턴합니다. 0. Arrays.asList()로 int 배열 변환하기 - Fail 코드 import java.util.Arrays; import java.util.List; public class IntArrayConvertToList { public static void main(String[] args) { // int 배열 int[] arr = { 1, 2, 3 }; // Arrays.asList() List intList = Arrays.asList(arr); // 결과..
배열을 List로 Arrays.asList() new ArrayList(Arrays.asList()) Collectors.toList() ArrayList를 배열로 toArray() - java.util.List 배열을 List로 1. Arrays.asList() 코드 import java.util.Arrays; import java.util.List; public class ArrayConversion { public static void main(String[] args) { String[] arr = { "A", "B", "C" }; // 배열 -> List로 변환 List list = Arrays.asList(arr); System.out.println(list.get(0)); // "A" Sys..
Character toCharArray() String을 char 배열로 변환하는 것 이 메소드를 활용해 자리변환등을 할 수 있었다. char[] chars = string.toCharArray(); isUpperCase() / isLowerCase() 해당 문자가 대문자/소문자인지를 확인하는 메소드 toUpperCase() / toLowerCase() 해당 문자를 대문자/소문자로 변환하는 메소드 isAlphabetic() 해당 문자가 알파벳인지 확인하는 메소드 isDigit() 해당 문자가 숫자인지 확인하는 메소드 getNumericValue() 해당 문자가 숫자인지 확인하는 메소드 char c1 = '3'; Character.getNumericValue(c1) // 3
리턴 타입 메소드 이름(매개 변수) 설명 char charAt(int index) 특정 위치의 문자를 리턴합니다. boolean equals(Object anObject) 두 문자열을 비교합니다. byte[] getBytes() byte[]로 리턴합니다. byte[] getBytes(Charset charset) 주어진 문자셋으로 인코딩한 byte[]로 리턴합니다. int indexOf(String str) 문자열 내에서 주어진 문자열의 위치를 리턴합니다. int length() 총 문자의 수를 리턴합니다. String replace(CharSequence target, CharSequence replacement) target 부분을 replacement로 대치한 새로운 문자열을 리턴합니다. Strin..
String -> int (문자열을 숫자로) String 문자열을 int로 변환하기 위해서는 java.lang.Integer 클래스의 parseInt()와 valueOf() 메소드를 사용할 수 있습니다. Integer.parseInt() static int parseInt(String s) java.lang.Integer 클래스의 static 메소드인 parseInt() 메소드는 파라미터로 숫자로 변환할 문자열을 입력받고, 입력받은 문자열을 integer로 변환한 int 값을 리턴합니다. 코드 public class StringToInt { public static void main(String[] args) { String str1 = "123"; String str2 = "-123"; int int..
java 배열 메소드 정리 분류 메소드 명 return type 설명 배열 변환 Arrays.asList(array) List 해당 메서드는 배열(Array)을 기반으로 Collection 함수의 ArrayList로 형변환을 하여 반환해주는 함수입니다. 배열 복사 Arrays.copyOf(array, copyArrayLenght) T[] 해당 메서드는 배열 전체를 복사하여서 복사할 길이 만큼 지정하여 복사한 새로운 배열로 반환해주는 함수입니다. 배열 복사 Arrays.copyOfRange(array, startIntex, endIndex) T[] 해당 메서드는 원본 배열의 시작 인덱스와 끝 인덱스를 지정하여서 복사한 새로운 배열로 반환해주는 함수입니다. 배열 채우기 Arrays.fill(array, n)..