Algorithm 복잡도
Big O
상수는 제외
O(10n) -> O(n).
O(10n + 2$$n^2$$) -> O($$n^2$$)
Binary Search = O($$logn$$)
Quick sort
- bad - O($$n^2$$) // avg - O($$nlogn$$)
Bubble sort / Insertion Sort <구현>
- O($$n^2$$)
복잡도 계산 시, 한 번 이터레이션에서 반씩 줄어들면, log 임.
== 과 equals
String s1 = "abcd";
String s2 = s1;
String s3 = new String("abcd");
/**
* s1과 s2는 같은 객체 [String -> "abcd" ]를 가리킴
* s3는 값만 "abcd"인 전혀다른 String 객체
*/
s1 == s2; // true -> object is same
s2 == s3; // false -> object is not same
s1.equals(s2); // true -> value is same
s2.equals(s3); // true -> value is same
Array
int[] array1 = new int[10];
char[] array2 = "Good".toCharArray();
2^2
Q.6만4천개 목록이 두개가 입력되며, 모든 조합을 확인해야 한다.
-> 64000 * 64000 = 64*64*1000*1000 = 2^6 * 2^6 * 2^10 * 2^10 = 2^12 * 2*20 = 2^32 = 4GB
2^10 - 1K // 2^20 - 1M // 2^30 - 1G // 2^40 - 1T
Java us_export_policy.jar와 local_policy.jar
Java 기본 암호화 알고리즘은 AES128이다. jre 패키지로 제공되며, 기본 패치 시 AES128만 지원하는 us__export__policy.jar 와 local_policy.jar 가 제공된다. [$JAVA_HOME/jre/lib/security/]
AES256을 쓰려면 두 jar파일을 패치해야한다.