전공 지식
-
Floyd’s Tortoise and Hare - Two Pointers전공 지식/자료구조 && 알고리즘 2025. 4. 9. 01:05
LinkedList 에서 Cycle 이 존재하는지 확인 & Cycle 이 시작하는 위치를 찾는 방법 bool hasCycle(ListNode *head) { ListNode* slow = head; ListNode* fast = head; while(fast != NULL && fast->next != NULL) { slow = slow -> next; fast = fast->next->next; if(fast == slow) return true; } return false; } * Cycle 이 있다면 결국 두 포인터가 만난다 라는 부분에서 착안함.- Cycle 이 ..
-
Boyer moore majority vote algorithm 보이어무어 과반수 투표 알고리즘전공 지식/자료구조 && 알고리즘 2025. 3. 16. 19:17
Boyer moore majority vote algorithm 보이어무어 과반수 투표 알고리즘- 배열에서 과반수를 차지하는 숫자를 시간복잡도 O(n), 공간복잡도 O(1) 에 찾을 수 있는 알고리즘- 항상 과반수가 존재 할 때 성립하는 알고리즘임 int candidate = nums[0];int count = 1;for(int i = 1; i 1. 과반수가 될 후보를 골라낸다. 처음은 nums[0];2. 반복문을 돌며 과반수가 맞는지 확인하는 과정을 거친다.2-1. 과반수에 해당하는 숫자가 없다면 현재 숫자를 과반수 후보로 지정2-2. 현재 숫자가 과반수 후보와 같다면 갯수를 1 증가 시킨다.2-3. 과반수 후보와 다르다면 1을 감소 시킨다.--------------------------------..
-
equals override 시에 주의 점은 무엇인가 (hashCode)전공 지식/JAVA 2022. 2. 18. 01:03
자바의 equal, hashCode 는 모든 object 의 부모 객체인 Object Class 에 정의 되어있다. 그래서 Java 에서 정의하는 모든 객체는 equals, hashCode 를 상속받고 있고 그걸 그대로 보통 사용한다. 하지만 equals 를 오버라이드 하고 싶을땐 어떻게 하지?? 우선 equals 에 대해서 알아보자. - equals 메소드는 두 객체가 동일한지 검사를 하기 위해 사용한다. 동일한지 검사 == 동일한 메모리 주소를 참조하는 것이 맞는지! *** 여기서 의문점!! 하지만 스트링을 모두 동적할당해서 사용한다면 두 객체는 분명히 메모리 주소가 다를텐데??! 왜 equals 는 TRUE 로 나오는 것인가! 그것은 String 에서 equals 를 Override 해서 그런 것이..
-
Java 7 -> 8 로 달라진 부분전공 지식/JAVA 2020. 7. 29. 21:10
Lamda 식별자 없이 실행할 수 있는 익명함수 이다. 장점 - 객체를 생성하지 않아도 메소드를 사용 할 수 있다. - 불필요한 코드를 줄여준다. - 작성된 코드의 가독성을 높일 수 있다. 단점 - 재귀 식의 호출이 까다롭다. Stream - 데이터 소스를 변경하지 않는다. 읽기만 할 뿐 변경하지 않음 - 모두 읽고 나면 다시 사용 할 수 없다. 필요하면 재생성해야함 - Parallel 을 사용하면 내부적으로 fork & join 을 사용하여 자동으로 연산을 병렬로 수행한다. - 중간 연산 / 최종 연산으로 분류 할 수 있다. 중간 연산 - 스트림으로 반환하기 때문에 중간 연산을 연속해서 연결 할 수 있다. (map, flatMap) ** flatMap - stream 의 요소가 배열이거나 map 의 연..
-
Interface전공 지식/JAVA 2020. 7. 23. 21:25
Java 에서 Interface 란? 기본적으로 추상메소드, 상수의 모음이다. Java8 이상부터 디폴트메소드, 정적 메소드도 추가 되었다. 인터페이스 내에서 직접 메소드를 구현할 수 있다. 오버라이딩 / 디폴트 메소드 둘 다 사용할 수있다. 상수 절대적 String val = "10" 추상 메소드 강제적 String fun(int a); 디폴트 메소드 선택적 default String fun(int a) { ... } 정적 메소드 절대적 static String fun(int a) { ... } 다중 상속은 안되지만 Interface 는 implement 할 수 있다. Interface 도 상속이 된다 default Method 만약에 공통적으로 추가가 되어야하는 메소드지만 아직은 몇몇개의 부분에서만 ..
-
Heap 영역 Detail / Garbage-Collection전공 지식/JAVA 2020. 7. 13. 23:03
JVM 에서 Garbage-Collection 의 대상인 Heap 영역에 대해서 좀 더 깊게 알아보고 Garbage-Collection 의 대상은 무엇인지 정리해보자! JAVA 1.7 이하 Yeong Generation 1. Eden Object, Array 가 Heap 에 최초로 할당되는 장소 영역이 꽉 차게 되면 참조 여부를 따져 참조가 되어 있는 Live Object : Suvivor 영역으로 넘김 참조가 끊어진 Garbage Object : 그대로 둠 모든 Live Object 가 Survivor 영역으로 넘어가게 되면 Minor GC 를 한다 2. Suvivor (S0, S1) Eden 에서 살아남은 Object 가 잠시 머무는 공간 Live Object 를 대피 시킬 때 하나의 survivor..
-